跟我學(xué)Git(二)

標(biāo)記

Git可以把特定的歷史版本標(biāo)記為重要版本。

創(chuàng)建注釋標(biāo)簽
git tag -a v1.4 -m "add tag"

-a表示標(biāo)簽為注釋標(biāo)簽,-m指定標(biāo)記信息,它會和標(biāo)簽一起存儲。

補(bǔ)加標(biāo)簽

更多的情況是經(jīng)過多次測試,確定了一個穩(wěn)定的歷史版本,這時候需要補(bǔ)加標(biāo)簽說明。

git tag -a v1.2 9fceb02  # 可通過git log查看SHA-1校驗(yàn)和
推送標(biāo)簽

以上操作都在本地添加標(biāo)簽,而且git push命令不會把標(biāo)簽傳輸?shù)竭h(yuǎn)程服務(wù)器上,標(biāo)簽需要明確的單獨(dú)推送。

git push origin v1.5    #將1.5這一標(biāo)簽推送到遠(yuǎn)程
git push origin --tags  #將所有服務(wù)器上還沒有的標(biāo)記一次性推送

分支

創(chuàng)建名稱不一致的分支
git checkout -b sf origin/serverfix

執(zhí)行完上述命令后,本地分支sf就會從origin/serverfix上獲取數(shù)據(jù)
如果想給本地已存在的分支設(shè)置跟蹤分支,或者更改本地分支對應(yīng)的遠(yuǎn)程分支,使用git branch命令的 -u或是--set-upstream-to。

git branch -u origin/serverfix

上述操作結(jié)束,可以通過git branch -vv選項(xiàng)來查看已經(jīng)設(shè)置了哪些跟蹤分支。會輸出所有本地分支的列表及每個分支跟蹤的遠(yuǎn)程分支信息。

變基

變基的工作原理:首先找到兩個要整合的分支的共同祖先,然后取得當(dāng)前所在分支的每次提交引入的更改,并把這些更改保存為臨時文件,這之后將當(dāng)前分支重置為要整合到的分支,最后在該分支上依次引入之前保存的每個更改。

git checkout experiment    #當(dāng)前分支
git rebase master          #目標(biāo)分支
git checkout master      
git merge experiment       

以上操作雖用到變基,但最終的整合效果和merge得到的是一樣的,但變基操作可以獲得更簡潔的提交歷史,得到的分支的提交歷史看起來是一條線。

撤銷提交

撤銷某一歷史提交有兩種方式

git revert commit_id          #撤銷一次提交
git rebase -i HEAD~2          #對前兩次提交進(jìn)行rebase操作

第一種方式會在提交歷史中記錄下來,以撤銷add2為例:



第二種方式會彈出如下編輯器,在vim窗口中add2提交的前面改為d或者drop即可,提交歷史中不會有記錄。


變基與合并操作的對比

合并操作是記錄實(shí)際發(fā)生過的事件的記錄
變基操作是記錄關(guān)于項(xiàng)目如何被構(gòu)建的故事
無論選擇合并還是變基,對代碼改動的結(jié)果記錄是一樣的,只是對操作的記錄不一樣,rebase讓開發(fā)的記錄更好看,更簡潔。merge讓每一步操作都可追溯。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容