一掖看、本地倉(cāng)庫(kù)
1芹枷、git init
創(chuàng)建git空倉(cāng)庫(kù)
2弟孟、git add <file>
添加文件到暫存區(qū)
3、git commit -m "提交的描述"
提交暫存區(qū)的內(nèi)容到工作區(qū)
4亚斋、git log? ? git log --pretty=oneline (格式化查看log日志)? ?
查看提交的日志
5作媚、git reset --hard HEAD^? ? ? git reset --hard 提交的id
回退到上一個(gè)版本(工作區(qū)和版本庫(kù)一起修改)
6、git reflog
如果回退到上個(gè)版本后悔了帅刊,可以繼續(xù)使用這個(gè)reflog查看之前的版本在選擇回退到哪個(gè)版本
7纸泡、git add命令實(shí)際上就是把要提交的所有修改放到暫存區(qū)(Stage),然后赖瞒,執(zhí)行g(shù)it commit就可以一次性把暫存區(qū)的所有修改提交到分支
8女揭、git diff HEAD -- <file>
查看工作區(qū)和版本庫(kù)里面最新版本的區(qū)別
9蚤假、git checkout -- <file>
兩種情況:
①:在工作區(qū)修改的內(nèi)容還沒有add到暫存區(qū),執(zhí)行后會(huì)回到與版本庫(kù)中的一模一樣的狀態(tài)
②:已經(jīng)把工作區(qū)的內(nèi)容add到暫存區(qū)后吧兔,再次修改工作區(qū)的內(nèi)容磷仰,執(zhí)行后會(huì)保持已經(jīng)添加到暫存區(qū)的狀態(tài)
10、git reset HEAD <file>
可以把暫存區(qū)的修改撤銷掉(unstage)境蔼,重新放回工作區(qū)灶平。
11、git rm <file>
刪除工作區(qū)和暫緩區(qū)的文件
二箍土、遠(yuǎn)程倉(cāng)庫(kù)
1逢享、git remote add origin 地址
關(guān)聯(lián)遠(yuǎn)程倉(cāng)庫(kù)
2、git push -u origin master
第一次把本地內(nèi)容推送到遠(yuǎn)程倉(cāng)庫(kù)
3吴藻、git push origin maste
把本地master分支的最新修改推送至遠(yuǎn)程倉(cāng)庫(kù)(github)
4瞒爬、 git clone 地址
如果想拷貝github上的項(xiàng)目用上面的命令(克隆下來(lái)以后只能看到master分支)
5、git remote
查看遠(yuǎn)程倉(cāng)庫(kù)信息(當(dāng)你從遠(yuǎn)程倉(cāng)庫(kù)克隆時(shí)沟堡,實(shí)際上Git自動(dòng)把本地的master分支和遠(yuǎn)程的master分支對(duì)應(yīng)起來(lái)了侧但,并且,遠(yuǎn)程倉(cāng)庫(kù)的默認(rèn)名稱是origin)
6弦叶、git remote -v
顯示更詳細(xì)的信息
7俊犯、git push origin <分支名>
這是分支的推送,可以把本地的分支推送到遠(yuǎn)程倉(cāng)庫(kù)中的分支
8伤哺、git checkout -b dev origin/dev
當(dāng)你clone了一個(gè)項(xiàng)目之后是查看不到除了master以外的分支,所以需要用以上代碼創(chuàng)建并切換分支
9者祖、git branch --set-upstream-to=origin/dev dev
關(guān)聯(lián)本地分支與遠(yuǎn)程分支立莉,這樣就能采取git pull命令拉取遠(yuǎn)程倉(cāng)庫(kù)的最新代碼(可能會(huì)有沖突)
10、git pull(git pull origin dev)
拉取分支代碼(在拉取之前可以用git diff進(jìn)行查看七问,避免沖突)
三蜓耻、分支管理
1、git checkout -b <分支名>
git checkout命令加上-b參數(shù)表示創(chuàng)建并切換械巡,相當(dāng)于以下兩條命令:
$ git branch <分支名>
$ git checkout <分支名>
2刹淌、git branch
查看當(dāng)前的分支
3、git checkout master
切換分支讥耗,工作區(qū)的內(nèi)容也跟著一起切換有勾。
4、git merge <分支名>
合并分支
5古程、git branch -d <分支名>
合并之后刪除分支
6蔼卡、git log --graph --pretty=oneline --abbrev-commit
分支有沖突時(shí)查看分支情況
7、git merge --no-ff -m "merge with no-ff" dev
分支管理策略:因?yàn)楸敬魏喜⒁獎(jiǎng)?chuàng)建一個(gè)新的commit挣磨,所以加上-m參數(shù)雇逞,把commit描述寫進(jìn)去荤懂。
合并分支時(shí),加上--no-ff參數(shù)就可以用普通模式合并塘砸,合并后的歷史有分支节仿,能看出來(lái)曾經(jīng)做過(guò)合并,而fast forward合并就看不出來(lái)曾經(jīng)做過(guò)合并掉蔬。
8廊宪、git stash
保存當(dāng)前分支的工作現(xiàn)場(chǎng),可以去修改著急的bug分支
9眉踱、git stash list
查看有多少個(gè)stash
10挤忙、git stash pop
恢復(fù)工作現(xiàn)場(chǎng)同時(shí)把stash刪除掉 (git stash apply 恢復(fù),但是恢復(fù)后谈喳,stash內(nèi)容并不刪除册烈,你需要用git stash drop來(lái)刪除;)
11婿禽、git stash apply stash@{0}
可以有多次stash赏僧,恢復(fù)指定的stash
12、git branch -D <分支名>
開發(fā)新功能時(shí)需要新建個(gè)feature分支扭倾,強(qiáng)行刪除分支上的內(nèi)容淀零。
三、標(biāo)簽
1膛壹、git tag <tag>
默認(rèn)標(biāo)簽是打在最新提交的commit上的
2驾中、git tag
查看所有標(biāo)簽
3、git tag <tag> commitid
指定commitid打標(biāo)簽
4模聋、git show <tag>
顯示對(duì)應(yīng)標(biāo)簽上提交的信息
5肩民、$ git tag -a <tag> -m "說(shuō)明" commitid
創(chuàng)建帶有說(shuō)明的標(biāo)簽,用-a指定標(biāo)簽名链方,-m指定說(shuō)明文字
標(biāo)簽總是和某個(gè)commit掛鉤持痰。如果這個(gè)commit既出現(xiàn)在master分支,又出現(xiàn)在dev分支祟蚀,那么在這兩個(gè)分支上都可以看到這個(gè)標(biāo)簽
6工窍、git tag -d <tag>
刪除標(biāo)簽
7、git push origin <tag>
推送到遠(yuǎn)程標(biāo)簽
8前酿、git push origin --tags
一次性推送全部尚未推送到遠(yuǎn)程的本地標(biāo)簽
9患雏、git tag -d <tagname>
刪除遠(yuǎn)程標(biāo)簽先刪除一個(gè)本地標(biāo)簽,然后在刪除遠(yuǎn)程標(biāo)簽
10薪者、git push origin :refs/tags/<tagname>
刪除遠(yuǎn)程標(biāo)簽