2017-08-08 58 views
-1

當我做git rebase --interactive,我有六個基本命令:pickrewordeditsquashfixupexecGit的交互式rebase中的「選擇」是做什麼的?

pick命令是做什麼的? cherry-pick一個提交還是它checkout呢?

+0

的可能的複製[?我如何合併兩個提交成一個(https://stackoverflow.com/questions/2563632/how-can-i-merge-two -commits-into-one) – jopasserat

+1

不,它不是重複的。 https://stackoverflow.com/questions/2563632/how-can-i-merge-two-commits-into-one不回答這個問題「它櫻桃挑選或結帳」。 – user983447

+0

你可能想檢查接受的答案.... https://stackoverflow.com/a/2568581/470341 – jopasserat

回答

0

根據實驗,挑Git的互動變基命令的工作方式與git的櫻桃挑選--ff相同。其中,根據該文件,這種方式操作:

如果當前HEAD相同的父級的櫻桃pick'ed提交,然後快進到這個提交將被執行。

(參見:https://git-scm.com/docs/git-cherry-pick

0

Pick是用來包含提交。

默認情況下,您會得到您選擇提交的提交內容的表格。目錄按日期升序排列。重新排列pick命令的順序會在您啓動rebase時更改提交的順序。

0

它只是使用提交 - 就是說,不會對其進行修改。

pick(p簡稱)是默認動作。在這種情況下,將重新應用 原樣,在它的內容沒有改變或消息

0

help article提交:

pick
pick簡單地意味着該提交被包括在內。重新排列拾取命令的順序會改變基底正在進行時的提交順序。如果您選擇不包含提交,則應刪除整條線。

爲了完整起見,這裏的其他命令,以及:

reword
reword命令類似pick,但你使用後,底墊過程將暫停,並給你一個有機會改變提交信息。提交所做的任何更改都不受影響。
edit
如果選擇edit提交,你會得到修改承諾的機會,這意味着你可以添加或更改全部提交。您還可以在繼續轉發之前做出更多提交。這允許你將一個大的提交分割成更小的提交,或者刪除提交中做出的錯誤更改。
squash
該命令允許您將兩個或多個提交合併到一個提交中。一個提交被壓縮到它上面的提交中。 Git讓你有機會編寫一個描述兩個變化的新提交消息。
fixup
這與squash類似,但要合併的提交將丟棄其消息。提交只是合併到它上面的提交中,並且先前提交的消息用於描述這兩個更改。
exec
這使您可以針對提交運行任意shell命令。

0

在交互式rebase中挑選提交意味着Git使用相關提交所做的更改並將其與原始元數據(消息,作者,日期等)一起提交。所以一個pick看起來很像git cherry-pick

相反,pick不承擔在提交時間的整個回購的狀態像git checkout會做。只需提交更改

相關問題