git rebase -i 介紹


分類

建立時間: 2023年10月26日 09:49
更新時間: 2023年10月26日 10:25

說明

git rebase -i 可以用來管理提交,像是合併、刪除等等。

提交順序

git log 的提交順序是由新到舊排序,而 git rebase -i 則是由舊到新排序。

互動模式畫面

當你輸入 git rebase -i 你就會進入一份編輯文件,這份文件就是管理提交的內容。

內容大概如下

pick 1a20cd4 temp

# Rebase 1fda1cd..1a20cd4 onto 0fca1bc (1 command)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message

最上面是提交管理內容,格式為【命令 提交 描述】,其他的部分都是註解,說明如何管理提交。

命令

這裡列出一些較常用的命令,完整的內容請參考註解訊息。

  • d, drop <commit> = 刪除提交
  • p, pick <commit> = 使用提交
  • s, squash <commit> = 使用提交,但合併到先前的提交中

上述命令一個是縮寫,一個是全寫,兩者都可以用。

其他編輯事項

  • 這些行可以重新排序;它們是從上到下執行的。
  • 如果你刪除某一行,就會失去提交,就跟 drop 命令一樣。

合併提交

pick a000001 commit 1
squash a000002 commit 2
pick a000003 commit 3
squash a000004 commit 4
pick a000005 commit 5

a000001 和 a000002 合併成一個提交,a000003 和 a000004 合併成一個提交。

pick a000001 commit 1
pick a000002 commit 2
squash a000003 commit 3
squash a000004 commit 4
pick a000005 commit 5

a000002 和 a000003 合併成一個提交,a000004 再跟 (a000002, a000003) 合併成一個提交,所以是三個提交合併在一起。

送出

當你編輯完成後,離開文件,例如: vim 指令是 :q。接著如果有要編輯提交內容,系統會再跳出內容讓你填寫,像是合併提交就會把所有合併的內容寫在裡面,你需要自己編輯新的合併提交內容,然後離開文件。

觀看次數: 416
gitiinteractiverebase
按讚追蹤 Enjoy 軟體 Facebook 粉絲專頁
每週分享資訊技術

一杯咖啡的力量,勝過千言萬語的感謝。

支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!