Git簡(jiǎn)介:
Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng)
Git教程 - 廖雪峰的官方網(wǎng)站
GitHub是通過(guò)Git進(jìn)行版本控制的軟件源代碼托管服務(wù)。GitHub同時(shí)提供付費(fèi)賬戶和免費(fèi)賬戶,這兩種賬戶都可以創(chuàng)建公開(kāi)或私有的代碼倉(cāng)庫(kù)。
GitHub官網(wǎng)
一些基本概念:
- 工作區(qū)(Working Directory):電腦里存在的目錄
- 版本庫(kù)( Repository):工作區(qū)的隱藏目錄
.git- stage:暫存區(qū)
- master:主分支,自動(dòng)創(chuàng)建的第一個(gè)分支
- HEAD:指向master的一個(gè)指針
1. 下載安裝Git
Git下載,選擇對(duì)應(yīng)的操作系統(tǒng)下載即可
-
雙擊默認(rèn)安裝(以Windows系統(tǒng)為例),安裝完畢后,win+r,啟動(dòng)命令行窗口,輸入git命令,可以看到下圖結(jié)果
image
2. 基礎(chǔ)的Git命令學(xué)習(xí)
2.1 初始化倉(cāng)庫(kù)
非系統(tǒng)盤(pán)非中文路徑,建立一個(gè)文件夾learngit,如E:\learngit
-
命令行窗口,通過(guò)如圖所示命令,進(jìn)入該目錄,通過(guò)git init命令,將目錄初始化為一個(gè)git倉(cāng)庫(kù)
image
2.2 向倉(cāng)庫(kù)添加文件、提交文件
- 在learngit目錄中新建一個(gè)README.md文件,添加“個(gè)人簡(jiǎn)介”內(nèi)容
# 1.個(gè)人簡(jiǎn)介
## 1.1 基本情況
## 1.2 聯(lián)系方式
- 使用git add命令,將文件添加到倉(cāng)庫(kù)
git add log.md
- 使用git commit命令,將文件提交到倉(cāng)庫(kù),提交的時(shí)候一定要加說(shuō)明!!
git commit -m "Personal profile"
至此,我們完成了從初始化倉(cāng)庫(kù),到添加文件,提交文件的一個(gè)完整過(guò)程,命令行窗口顯示如圖:

2.3 修改文件
接下來(lái),我們對(duì)README.md文件進(jìn)行一些改變,添加“教育經(jīng)歷”部分內(nèi)容
# 1.個(gè)人簡(jiǎn)介
## 1.1 基本情況
## 1.2 聯(lián)系方式
# 2.教育經(jīng)歷
## 2.1 學(xué)歷教育
## 2.2 繼續(xù)教育
如果不經(jīng)過(guò)add,直接commit,將會(huì)出現(xiàn)以下結(jié)果


2.4 查看倉(cāng)庫(kù)狀態(tài)
可以使用git status命令,查看倉(cāng)庫(kù)當(dāng)前的狀態(tài),比如是都提交完了,還是有一些add的文件尚未提交等,如圖

2.5 查看版本歷史記錄
README.md文件經(jīng)過(guò)了兩次提交,我們可以用git log命令進(jìn)行查看

也可以使用圖中命令一行顯示一條記錄
git log --pretty=oneline

那一大串d5cef7149e729a5f662ac41b01afdae1fa9883d8字樣,是commit id,每提交一個(gè)新版本,Git就會(huì)把它們自動(dòng)串成一條時(shí)間線。
2.6 穿越到任意一個(gè)版本
當(dāng)我們需要穿越到任意在記錄中存在的版本去的時(shí)候,只需使用如下命令:

版本號(hào)很長(zhǎng),不需要寫(xiě)全,寫(xiě)前幾位就可以了,Git會(huì)自動(dòng)尋找
然后我們打開(kāi)README.md文件,會(huì)發(fā)現(xiàn)

點(diǎn)擊Y,文件就恢復(fù)成了第一版
同樣可以通過(guò)不同的版本號(hào),去到你想去的版本~~
2.7 多文件提交
Git允許add多個(gè)文件,然后一次性通過(guò)commit來(lái)提交
比如我們?cè)趌earngit目錄加入一個(gè)圖片文件,再放入一個(gè)文本文件

然后進(jìn)行兩次add
git add log.txt
git add me.jpg
然后查看git status

通過(guò)commit一次性提交兩個(gè)文件

然后,自己嘗試看看現(xiàn)在的版本記錄吧

3. 總結(jié):
git:查看系統(tǒng)有沒(méi)有安裝Git
-
設(shè)置全局屬性,用戶名和郵箱
- git config --global user.email “email@example.com”
- git config --global user.name "Your Name"
git init:創(chuàng)建版本庫(kù)
git add hello.txt:將文件添加到臨時(shí)區(qū)
git commit -m “create hello.txt file”:把文件提交到倉(cāng)庫(kù)
git status:查看當(dāng)前的Git倉(cāng)庫(kù)狀態(tài)
git log:查看從近到遠(yuǎn)的提交日志
git log --pretty=online:簡(jiǎn)略顯示
git reset --hard HEAD:回退到上一版本
git reset --hard commit_id:穿梭到指定版本號(hào)的版本
git rm hello.txt:刪除文件
注意:
- commit之前一定要先add
- git add . : 可以進(jìn)行文件夾所有文件提交,以及指定提交某些文件
4. 創(chuàng)建SSH Key
在用戶主目錄下(打開(kāi)命令行窗口的默認(rèn)路徑),看看有沒(méi)有.ssh目錄,如果有,再看看這個(gè)目錄下有沒(méi)有id_rsa和id_rsa.pub這兩個(gè)文件,如果已經(jīng)有了,可直接跳到下一步。如果沒(méi)有,打開(kāi)Shell(Windows下打開(kāi)Git Bash),創(chuàng)建SSH Key:ssh-keygen -t rsa -C "youremail@example.com",一路回車(chē)鍵,效果如圖。

然后就可以用記事本打開(kāi)id_rsa.pub文件了
5.在GitHub中加入SSH Key
登錄GitHub,點(diǎn)擊個(gè)人頭像,選擇Settings,在“SSH And GPG keys”頁(yè)面,點(diǎn)擊“New SSH Key”按鈕,在Key文本框粘貼id_rsa.pub文件的內(nèi)容:
完成后如圖

6. 創(chuàng)建一個(gè)新的倉(cāng)庫(kù)
在GitHub創(chuàng)建一個(gè)learngit的倉(cāng)庫(kù)


7. 設(shè)置遠(yuǎn)程庫(kù)
在本地的git倉(cāng)庫(kù)運(yùn)行命令
git remote add origin git@github.com:wufei0429/wsdkj.git
遠(yuǎn)程庫(kù)的名字是origin,這是Git默認(rèn)的叫法,也可以改成別的,但是origin這個(gè)名字一看就知道是遠(yuǎn)程庫(kù)。后面是使用Git協(xié)議,注意賬號(hào)和倉(cāng)庫(kù)名的修改
5.把本地庫(kù)的所有內(nèi)容推送到遠(yuǎn)程庫(kù)上
git push -u origin master

然后去GitHub遠(yuǎn)程庫(kù)刷新一下,可以看到文件已經(jīng)同步了!

注意:
- 一定要本地倉(cāng)庫(kù)先提交,然后才能向遠(yuǎn)程倉(cāng)庫(kù)push
- 如果push失敗,應(yīng)該是遠(yuǎn)程庫(kù)版本比本地庫(kù)新,應(yīng)該用git pull先把遠(yuǎn)程庫(kù)拉下來(lái),然后再push
git pull origin master
-
可以從遠(yuǎn)程庫(kù)克隆一個(gè)到本地庫(kù)
image
提交helloworld項(xiàng)目到遠(yuǎn)程倉(cāng)庫(kù)的具體步驟
- Git Bash切換到helloworld項(xiàng)目目錄
- git config core.autocrlf true
- git add .
- git commit -m "commit helloworld project"
- 遠(yuǎn)程建立helloworld倉(cāng)庫(kù)
- git remote add origin git@github.com:mqxu/helloworld.git
- git push -u origin master


