2017-10-13 154 views
2

壓扁多次提交,我一直使用:Git擴展:Squash提交?

git reset --soft HEAD~<number of commits to squash> && git commit 

但我不知道是否有一個良好的git客戶端如Git擴展做到這一點的好辦法?如果你可以選擇連續的提交併擠壓它們,這將是很酷的。

+0

我把它用TortouseGit,非常方便做 – Alexan

回答

4

你可以很容易地通過GitExtensions 2種方式實現這一目標。

第一個是做完全相同的事情,但從GUI適合當你不想使用你觀看提交的提交的現有提交消息。 。

git reset --soft HEAD~<number of commits to squash> 

從GitExtensions的歷史瀏覽器中,右鍵單擊最後一次提交你想保持和選擇「重置分支在這裏」。然後選擇選項'軟'

git commit 

然後提交仍在上演的更改。

第二是一個「變基--interactive」:

右擊上述相同的提交描述並選擇「重訂」上。在彈出窗口中選中複選框'interactive'。

然後,在編輯器中,將提交操作設置爲「壓扁」。在做這件事之前,先閱讀一份有關交互式重做的完整文檔。這個解決方案是完美的,當你想編寫一個很好的提交消息,這個提交消息是根據你正在壓縮的提交中的提交消息構建的。

3

(假設你使用的是Windows)

是的,我相信TortoiseGit能做到這一點。作爲TortoiseSVN的以前用戶,我會推薦它。當查看提交日誌,你可以做到以下幾點:

Combine multiple commits context menu

此外,當你提交使用TortoiseGit,你必須簡單地修改選項以前的承諾,這樣你就可以做到這一點當你去時。當你這樣做的時候它也會拉入最後的提交信息(我在屏幕截圖中爲了保護隱私而清除了它)。

Amend last commit

當然,我相信你已經知道這一點,但不要試圖合併或修改那些已經被推到遠程,或你的下一個推就會失敗提交。

作爲額外的獎勵,您將在Explorer中瀏覽工作副本時獲得覆蓋圖標的好處。

Explorer icons

5

您可以輕鬆地做到這一點在GE:

  1. 混合復位的承諾要壁球到
  2. 階段和提交你需要

文件如何壁球: enter image description here