2017-04-19 101 views

回答

0

有沒有簡單的方法來自動完成這個,至少不完全。 (可以處理一些特殊情況。)相反,最好的辦法是將此分支刪除委託給拉取請求已被壓縮合並的人員。有幾個很好的理由:

  1. 他們是唯一可以確保合併正確完成的人。

    例如,假設爲了壓縮一系列的六個提交,那些合成的壁板合併者必須或者選擇在一行或兩行中改變幾個字符,出於某種原因好或壞。這一行或兩行意味着最終提交的總體變化是不同於與六個提交中的六個更改的總和。

    不過是總的結果是否正確?如果你自己沒有做任何修改,你會怎麼知道?

  2. 他們是唯一知道他們是否打算繼續在該分支上開發的人。

    只是因爲feature/tall六個提交被壓扁成一個提交加入devel並不意味着feature/tall全部完成。他們可能有更多的提交要添加;他們可能需要再次變基feature/talldevel,投下贊成的一六提交 - 壁球六個壓扁提交,但保持其他三個提交他們即將補充。

可能還有一些情況。這些可能都是罕見的;他們可能永遠不會發生在你的項目中但這裏的關鍵是,分支feature/tall他們分支,不分支,因此他們,無論他們是誰,應該是那些刪除它時,它的完成。

請注意,當你拿起feature/tall你有你自己的Git重命名爲origin/feature/tall(假設你的遠程名爲origin)。如果您正在試驗它,並且git checkout feature/tall,您的Git會爲您製作一份副本。一旦他們刪除feature/tall並運行git fetch origin --prune,你的Git刪除您origin/feature/tall。所以現在問題更簡單了,可以自動化:find branches whose "upstream" is gone, and delete those。 (在這個答案的一個行腳本有一些小瑕疵,看到的評論;票友人會使用git for-each-ref和查找每個分支的上游設置有git rev-parse,但是這可能矯枉過正)