參考:廖雪峰的git教程
git init
把這個(gè)目錄變成Git可以管理的倉(cāng)庫(kù)git add
把文件添加到倉(cāng)庫(kù)(實(shí)際上就是把文件修改添加到暫存區(qū))
git add readme.txt 添加單個(gè)文件
git add ./ 添加全部緩存文件git commit -m "XXXXX"
把文件提交到倉(cāng)庫(kù)存谎,"XXXX"是本次提交的說(shuō)明(際上就是把暫存區(qū)的所有內(nèi)容提交到當(dāng)前分支)-
git status
查看倉(cāng)庫(kù)當(dāng)前的狀態(tài)
-
git diff <file>
查看readme.txt文件具體修改了什么內(nèi)容
git log
顯示從最近到最遠(yuǎn)的提交日志
git log --pretty=oneline 減少輸出信息
git log --graph 可以看到分支合并圖git reset
版本回退或把暫存區(qū)的修改回退到工作區(qū)
在Git中浮入,用HEAD表示當(dāng)前版本,也就是最新的提交孵运,上一個(gè)版本就是HEAD^,上上一個(gè)版本就是HEAD^^惠呼,往上100個(gè)版本寫成HEAD~100导俘。
回退到上一個(gè)版本 git reset --hard HEAD^
想要回退到某個(gè)版本號(hào) git reset --hard 1094a(1094a為你想要回退的那個(gè)版本的commit id,版本號(hào)沒(méi)必要寫全剔蹋,前幾位就可以了旅薄,Git會(huì)自動(dòng)去找)
git reset HEAD <file> 可以把暫存區(qū)的修改撤銷掉,重新放回工作區(qū)泣崩。-
git reflog
記錄每一次命令
-
git checkout -- <file>
丟棄工作區(qū)的修改
git rm <file>
刪除一個(gè)文件
先手動(dòng)刪除文件或者用rm命令刪少梁,然后使用git rm <file>和git add<file>(效果是一樣的),并且git commit矫付。
另一種情況是刪錯(cuò)了猎莲,因?yàn)榘姹編?kù)里還有,所以可以通過(guò)$ git checkout -- test.txt技即,把誤刪的文件恢復(fù)到最新版本著洼。
PS:從來(lái)沒(méi)有被添加到版本庫(kù)就被刪除的文件,是無(wú)法恢復(fù)的而叼!git remote add origin <address>
關(guān)聯(lián)一個(gè)遠(yuǎn)程庫(kù)git push
推送
git push origin master 推送master分支的所有內(nèi)容
git push -u origin master 第一次推送(加上了-u參數(shù)身笤,Git不但會(huì)把本地的master分支內(nèi)容推送的遠(yuǎn)程新的master分支,還會(huì)把本地的master分支和遠(yuǎn)程的master分支關(guān)聯(lián)起來(lái))git remote -v
查看遠(yuǎn)程庫(kù)信息
git remote -v 顯示更詳細(xì)的信息git remote rm <name>
刪除遠(yuǎn)程庫(kù)(根據(jù)名字刪除)
比如:git remote rm origingit clone <address>
克隆一個(gè)本地庫(kù)
分支模塊
-
git branch
查看分支(當(dāng)前分支前面會(huì)標(biāo)一個(gè)*號(hào)) -
git branch <name>
創(chuàng)建分支 -
git checkout <name> 或者 git switch <name>
切換分支 -
git checkout -b <name> 或者 git switch -c <name>
創(chuàng)建+切換分支
git checkout -b dev origin/dev 創(chuàng)建遠(yuǎn)程origin的dev分支到本地 -
git merge <name>
合并某分支到當(dāng)前分支
git merge --no-ff -m "XXXX" <name> 合并分支時(shí)葵陵,加上--no-ff參數(shù)就可以用普通模式合并液荸,合并后的歷史能看到分支(因?yàn)楸敬魏喜⒁獎(jiǎng)?chuàng)建一個(gè)新的commit,所以加上-m參數(shù)脱篙,把commit描述寫進(jìn)去) -
git branch -d <name>
刪除分支
git branch -D <name> 丟棄一個(gè)沒(méi)有被合并過(guò)的分支娇钱,強(qiáng)行刪除 -
git stash
把當(dāng)前工作現(xiàn)場(chǎng)“儲(chǔ)藏”起來(lái)(當(dāng)手頭工作還沒(méi)有完成時(shí))
git stash list 查看
恢復(fù)方法:1. git stash apply恢復(fù),但是恢復(fù)后绊困,stash內(nèi)容并不刪除文搂,需要用git stash drop來(lái)刪除
2. git stash pop,恢復(fù)的同時(shí)把stash內(nèi)容也刪了
git stash apply stash@{0} 恢復(fù)指定的stash -
git cherry-pick <commit>
把bug提交的修改“復(fù)制”到當(dāng)前分支(即在master分支上修復(fù)的bug秤朗,想要合并到當(dāng)前dev分支)
-
git pull
從遠(yuǎn)程抓取分支
如果git pull提示no tracking information煤蹭,則說(shuō)明本地分支和遠(yuǎn)程分支的鏈接關(guān)系沒(méi)有創(chuàng)建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>
標(biāo)簽?zāi)K
tag就是一個(gè)讓人容易記住的有意義的名字取视,它跟某個(gè)commit綁在一起硝皂。
-
git tag
查看所有標(biāo)簽 -
git tag <name>
打一個(gè)新標(biāo)簽
git tag <name> <commit> 給歷史提交打上標(biāo)簽
PS:標(biāo)簽不是按時(shí)間順序列出,而是按字母排序的
git tag -a <name> -m "XXXX" <commit> 創(chuàng)建帶有說(shuō)明的標(biāo)簽作谭,用-a指定標(biāo)簽名稽物,-m指定說(shuō)明文字
PS:標(biāo)簽總是和某個(gè)commit掛鉤。如果這個(gè)commit既出現(xiàn)在master分支折欠,又出現(xiàn)在dev分支贝或,那么在這兩個(gè)分支上都可以看到這個(gè)標(biāo)簽 -
git show <tagname>
查看標(biāo)簽信息 -
git tag -d <tagname>
刪除本地標(biāo)簽
git push origin :refs/tags/<tagname> 從遠(yuǎn)程刪除標(biāo)簽 -
git push origin <tagname>
推送某個(gè)標(biāo)簽到遠(yuǎn)程
git push origin --tags 一次性推送全部尚未推送到遠(yuǎn)程的本地標(biāo)簽
其他配置
-
git config --global color.ui true
讓Git顯示顏色 -
git add -f <file>
強(qiáng)制將忽略文件添加到Git -
git check-ignore -v <file>
檢查.gitignore的配置 -
git config --global alias.st status
配置別名(git status -> git st)
-global參數(shù)是全局參數(shù)吼过,也就是這些命令在這臺(tái)電腦的所有Git倉(cāng)庫(kù)下都有用。