寫(xiě)這篇文章的目的就是為了記錄下自己常用的git命令及加深記憶,也算是備忘之用吧。自己對(duì)于git的理解也都是從互聯(lián)網(wǎng)上的各路大神博客學(xué)到的(還是感謝這個(gè)互聯(lián)網(wǎng)分享信息的時(shí)代),水平有限也難免有疏漏或者錯(cuò)誤的地方,如若發(fā)現(xiàn)歡迎批評(píng)指正。廢話(huà)不多說(shuō)了,進(jìn)入正題。
一、設(shè)置git的用戶(hù)名和郵箱
1、設(shè)置git的用戶(hù)名、郵箱以及查看git的信息,命令如下:“git config --global user.name 'ysx'、git config --global user.email 'ysxfighting@gmail.com' 、git config --list”,如下圖:

二、git版本庫(kù)的創(chuàng)建
1、創(chuàng)建自己的版本庫(kù)(比如說(shuō)我在“D盤(pán)”創(chuàng)建了一個(gè)文件夾以“work”命名,難么現(xiàn)在我切換到git命令行下,然后cd到work目錄下,最后以一條"git init"命令結(jié)束,現(xiàn)在已經(jīng)擁有了版本庫(kù)) ,具體如下圖:

2、克隆別人的版本庫(kù)或者自己已經(jīng)在github上創(chuàng)建好的,具體命令如下:“git clone 版本庫(kù)地址”,如下圖:

三、有關(guān)git版本庫(kù)的簡(jiǎn)單操作
1、查看當(dāng)前版本庫(kù)的狀態(tài),具體命令如下:"git status",如下圖:

2、把版本庫(kù)中的新加內(nèi)容或者修改內(nèi)容添加到暫存區(qū)及提交修改內(nèi)容到版本庫(kù)(關(guān)于工作區(qū)和暫存區(qū)我是這么理解的,凡是沒(méi)有用git add xx命令之前的修改內(nèi)容都是存放在工作區(qū),反之則存放在暫存區(qū)。在work文件夾下新建了一個(gè)readme.txt文件),具體命令如下:“git add readme.txt、git commit -m '填寫(xiě)修改的信息'”,如下圖:

上面是具體指定那個(gè)文件添加到暫存區(qū),其實(shí)也有把所有修改添加到暫存區(qū)(往readme.txt添加內(nèi)容aaa、bbb和新建文件log.txt),這樣的話(huà)不用一個(gè)個(gè)的add了,命令如下:“git add .”,如下圖:

3、對(duì)比所修改內(nèi)容的差異化(往readme.txt里添加ccc內(nèi)容,修改前和修改后的內(nèi)容的對(duì)比,可以知道具體改了什么地方),命令如下:“git diff readme.txt”,如下圖:

4、撤銷(xiāo)工作區(qū)的修改內(nèi)容(往readme.txt里添加ddd內(nèi)容),命令如下:“git checkout -- readme.txt”,如下圖:

5、撤銷(xiāo)暫存區(qū)的修改內(nèi)容(往readme.txt里添加ddd內(nèi)容),命令如下:“git reset HEAD readme.txt ”,如下圖:

6、查看所有提交的日志信息,命令如下:“git log”。如下圖:

極簡(jiǎn)模式的log顯示,命令如下:“git log --pretty=oneline”。如下圖:

7、回退到上一版本,命令如下:“git reset --hard HEAD^或者git reset --hard HEAD~1”,如若要回退到第N個(gè)版本,建議用git reset --hard HEAD~n。如下圖:

8、恢復(fù)到回退前的內(nèi)容,命令如下:“git reflog(查看版本號(hào))、git reset --hard 所提交的版本號(hào)”,如下圖:

9、查看指定文件每次提交的記錄,命令如下:“gitk <file>”,如下圖:


四、分支的使用
在創(chuàng)建版本庫(kù)的時(shí)候,系統(tǒng)會(huì)給你一個(gè)主分支也就是所謂的master分支,在做程序的時(shí)候一般把相對(duì)穩(wěn)定的代碼提交到master分支上,這時(shí)候在開(kāi)發(fā)的時(shí)候就需要子分支來(lái)提交不穩(wěn)定的代碼了,等測(cè)試穩(wěn)定了再把子分支合并到主分支上。具體操作如下:
1、創(chuàng)建本地的子分支,命令如下:“git branch 分支名字、git checkout <branch name>\合并成一行為:git checkout -b <branch name>”,如下圖:

創(chuàng)建分支的簡(jiǎn)潔寫(xiě)法如下圖:

2、查看當(dāng)前版本庫(kù)有幾個(gè)分支,命令如下:“git branch”。如下圖:

3、合并分支,命令如下:“git merge <branch name>”。如下圖


五、tag的使用
每當(dāng)要發(fā)布一個(gè)新版本的時(shí)候,把相應(yīng)的代碼做個(gè)記號(hào)是個(gè)好習(xí)慣,什么時(shí)候回頭想看看以前版本的代碼了直接git checkout -b <branch name> <tag name>一條命令就可回到以前的代碼了,這酸爽。
1、打標(biāo)簽及查看標(biāo)簽,命令如下:“git tag <tag name>、git tag”。如下圖:

2、刪除標(biāo)簽,命令如下:“git tag -d <tag name>”。如下圖:

六、常用命令
設(shè)置用戶(hù)名
git config --global user.name <username>
設(shè)置郵箱
git config --global user.email <email>
創(chuàng)建版本庫(kù)
git init
添加內(nèi)容到暫存區(qū)
git add <file>
git add .
提交內(nèi)容到版本庫(kù)
git commit -m <modify message>?
git commit -a -m <modify message>
查看版本庫(kù)狀態(tài)
git status
對(duì)比代碼的差異化
git diff <file>
撤銷(xiāo)工作區(qū)內(nèi)容的修改
git checkout -- <file>
把暫存區(qū)的內(nèi)容撤銷(xiāo)到工作區(qū)
git reset HEAD <file>
回退
git reset --hard HEAD^
git reset --hard HEAD~1
查看日志信息
git log
git log --pretty=oneline
查看所有的日志信息
git reflog
恢復(fù)回退
git reset --hard xxx
跟蹤相應(yīng)文件的所有修改記錄
gitk <file>
創(chuàng)建并切換到分支上
git checkout -b <branch name>
把遠(yuǎn)程庫(kù)上的分支創(chuàng)建到本地并切換
git checkout -b <branch name> origin/<branch name>
查看所有分支
git branch
合并分支
git merge <branch name>
刪除本地分支
git branch -d <branch name>
推送分支到遠(yuǎn)程版本庫(kù)(github上的代碼庫(kù))上
git push origin <branch name>
刪除遠(yuǎn)程版本庫(kù)(github上的代碼庫(kù))上的分支
git push origin --delete <branch name>
查看所有標(biāo)簽信息
git tag
打標(biāo)簽
git tag <tag name>
刪除本地標(biāo)簽
git tag -d <tag name>
推送所有本地標(biāo)簽到遠(yuǎn)程庫(kù)(github上的代碼庫(kù))上
git push origin --tags
推送指定標(biāo)簽到遠(yuǎn)程庫(kù)(github上的代碼庫(kù))上
git push origin <tag name>
刪除遠(yuǎn)程代碼庫(kù)(github上的代碼庫(kù))上的標(biāo)簽
git push origin --delete <tag name>
切換到打標(biāo)簽的代碼上
git checkout -b <branch name> <tag name>
提交到遠(yuǎn)程庫(kù)上
git push origin master
從遠(yuǎn)程庫(kù)上拉取最新的內(nèi)容
git pull