當我做git rebase --interactive
,我有六個基本命令:pick
,reword
,edit
,squash
,fixup
和exec
。Git的交互式rebase中的「選擇」是做什麼的?
pick
命令是做什麼的? cherry-pick
一個提交還是它checkout
呢?
當我做git rebase --interactive
,我有六個基本命令:pick
,reword
,edit
,squash
,fixup
和exec
。Git的交互式rebase中的「選擇」是做什麼的?
pick
命令是做什麼的? cherry-pick
一個提交還是它checkout
呢?
根據實驗,挑Git的互動變基命令的工作方式與git的櫻桃挑選--ff相同。其中,根據該文件,這種方式操作:
如果當前HEAD相同的父級的櫻桃pick'ed提交,然後快進到這個提交將被執行。
Pick是用來包含提交。
默認情況下,您會得到您選擇提交的提交內容的表格。目錄按日期升序排列。重新排列pick命令的順序會在您啓動rebase時更改提交的順序。
它只是使用提交 - 就是說,不會對其進行修改。
pick(p簡稱)是默認動作。在這種情況下,將重新應用 原樣,在它的內容沒有改變或消息
從help article提交:
pick
pick
簡單地意味着該提交被包括在內。重新排列拾取命令的順序會改變基底正在進行時的提交順序。如果您選擇不包含提交,則應刪除整條線。
爲了完整起見,這裏的其他命令,以及:
reword
的reword
命令類似pick
,但你使用後,底墊過程將暫停,並給你一個有機會改變提交信息。提交所做的任何更改都不受影響。
edit
如果選擇edit
提交,你會得到修改承諾的機會,這意味着你可以添加或更改全部提交。您還可以在繼續轉發之前做出更多提交。這允許你將一個大的提交分割成更小的提交,或者刪除提交中做出的錯誤更改。
squash
該命令允許您將兩個或多個提交合併到一個提交中。一個提交被壓縮到它上面的提交中。 Git讓你有機會編寫一個描述兩個變化的新提交消息。
fixup
這與squash
類似,但要合併的提交將丟棄其消息。提交只是合併到它上面的提交中,並且先前提交的消息用於描述這兩個更改。
exec
這使您可以針對提交運行任意shell命令。
在交互式rebase中挑選提交意味着Git使用相關提交所做的更改並將其與原始元數據(消息,作者,日期等)一起提交。所以一個pick
看起來很像git cherry-pick
。
相反,pick
不承擔在提交時間的整個回購的狀態像git checkout
會做。只需提交更改。
的可能的複製[?我如何合併兩個提交成一個(https://stackoverflow.com/questions/2563632/how-can-i-merge-two -commits-into-one) – jopasserat
不,它不是重複的。 https://stackoverflow.com/questions/2563632/how-can-i-merge-two-commits-into-one不回答這個問題「它櫻桃挑選或結帳」。 – user983447
你可能想檢查接受的答案.... https://stackoverflow.com/a/2568581/470341 – jopasserat