git 提交_使用Git-Rebase合并多次提交
在平時的軟件開發中,我們每個team使用一個公共倉庫(這里說的是Git倉庫)。每當有一個新的需求,我們會拉出一個特性分支,然后在這個特性分支上做開發以及提交個人的代碼。
我有個習慣就是:為了確保代碼的安全性,每天下班前會把個人的本地倉庫代碼提交到公共倉庫。由于每天開發過程中由于各種原因會提交幾次代碼到個人倉庫,這樣就導致下班提交代碼到公共倉庫時,一次提交好幾個記錄,這樣就會是的公共倉庫有各種亂七八糟的所有增量修改歷史。為了避免太多的提交而造成版本控制的混亂,通常我們推薦將這些提交合并成一個。
使用rebase合并提交
想要合并n條提交記錄,有兩個方法:
1.從HEAD版本開始往過去數 n 個版本
git rebase -i HEAD~n2.指定一個合并區間 startpoint 和 endpoint,注意:該區間指定的是一個前開后閉的區間,意思就是startpoint不參與合并
git rebase -i [startpoint] [endpoint]- -i 的意思是 --interactive,即彈出交互式的界面讓用戶編輯完成合并操作
- startpoint 和 endpoint 指定了一個編輯區間
- 如果不指定endpoint,則該區間的終點endpoint默認是當前分支HEAD所指向的提交
操作
1.執行 git log 查看提交歷史,接下來我們將三次提交合并為一個提交
2.執行 git rebase -i HEAD~3 ,彈出操作窗口
操作說明:
- pick:保留該commit(縮寫:p)
- reword:保留該commit,但我需要修改該commit的注釋(縮寫:r)
- edit:保留該commit, 但我要停下來修改該提交(不僅僅修改注釋)(縮寫:e)
- squash:將該commit和前一個commit合并(縮寫:s)
- fixup:將該commit和前一個commit合并,但我不要保留該提交的注釋信息(縮寫:f)
- exec:執行shell命令(縮寫:x)
- drop:我要丟棄該commit(縮寫:d)
根據我們的需求,我們將commit內容編輯如下:
pick 85697ee This is first commit.squash ee461c1 This is second commit.squash 326e415 This is third commit.上面的意思就是把第二次、第三次提交都合并到第一次提交上。
3.然后保存退出,Git會壓縮提交歷史。如果有沖突,需要修改,修改的時候要注意,保留最新的歷史,不然我們的修改就丟棄了
修改以后要記得敲下面的命令:
git add . git rebase --continue如果你想放棄這次壓縮的話,執行以下命令:
git rebase --abort4.如果沒有沖突,或者沖突已經解決,則會出現如下的編輯窗口
我們將三次提交信息合并成一個提交信息
Commit feature branch!#This is first commit.#This is second commit.#This is third commit.5.編輯完保存即可完成commit的合并了,我們執行一下 git log
然后提交到公共倉庫,有沒有感覺提交記錄清爽了許多,快來試試吧!
歡迎訪問我的博客:http://blog.hxpgxt.cn
關注公眾號:JAVA九點半課堂,這里有一批優秀的程序猿,加入我們,一起探討技術,共同進步!回復“資料”獲取 2T 行業最新資料!
總結
以上是生活随笔為你收集整理的git 提交_使用Git-Rebase合并多次提交的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 虚拟内存越大越好吗_滤波电容越大越好吗?
- 下一篇: 为什么下拉框拉不下来_太气人了!《除暴》