[英]Git Extensions: Squash commits?
為了壓縮多個提交,我一直使用:
git reset --soft HEAD~<number of commits to squash> && git commit
但是我想知道在像 git extensions 這樣的好的 git 客戶端中是否有一個很好的方法來做到這一點? 如果您可以選擇連續的提交並壓縮它們,那就太酷了。
有多種方法可以做壁球。
以下是如何在Git Extensions 中輕松地將當前及其所有直接父提交壓縮為單個提交的方法:
這是上面的動畫:
另一種方法是進行“交互式變基”
git rebase -i
, 閱讀文檔),或要在 Git 擴展中進行交互式變基:
這是上面的動畫:
(假設您使用的是 Windows)
是的,我相信TortoiseGit可以做到。 作為 TortoiseSVN 的前用戶,我會推薦它。 查看提交日志時,您可以執行以下操作:
此外,當您使用 TortoiseGit 提交時,您可以選擇簡單地修改之前的提交,這樣您就可以隨時進行。 當您執行此操作時,它還會拉入最后一次提交消息(我在屏幕截圖中出於隱私原因清除了我的)。
當然,我相信你已經知道這一點,但不要試圖合並或修改已經推送到遠程的提交,否則你的下一次推送將失敗。
作為一個額外的好處,在資源管理器中瀏覽您的工作副本時,您將獲得覆蓋圖標的好處。
您可以通過 2 種方式使用 GitExtensions 輕松實現這一點。
第一個是做完全相同的事情,但是從 GUI 開始,當您不想使用您觀看的提交的現有提交消息來壓縮時,這是合適的。 .
git reset --soft HEAD~<number of commits to squash>
在 GitExtensions 的歷史瀏覽器中,右鍵單擊要保留的最后一次提交並選擇'reset branch to here' 。 然后選擇選項'soft' 。
git commit
然后提交仍處於暫存階段的更改。
第二個是 'rebase --interactive' :
右鍵單擊上述相同的提交並選擇“rebase on”。 在彈出窗口中選中“交互式”復選框。
然后,在編輯器中,將提交操作設置為“擠壓”。 在做之前閱讀關於交互式 rebase 的好文檔。 當您想根據您正在壓縮的提交的提交消息編寫良好的提交消息時,此解決方案是完美的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.