2017-02-20 73 views
2

所以我的Git根據服務器端

  • 把我當地分公司到GitHub的
  • GitHub上
  • 創建拉請求和
  • 成功合併,並關閉了拉請求,並更新所有地方分公司看這個...
  • 刪除分支在GitHub網站使用「刪除支線」按鈕

現在的問題是,我沒有發現什麼/如何做下了,不管我做什麼,我的本地分行是永遠存在的。所以,

如何讓git準確地鏡像服務器上有哪些分支,刪除所有不存在的分支。或者,如果我必須自己做,我需要做什麼步驟?謝謝。

回答

1

刪除是在遠程已經刪除了遠程分支參考。

$ git remote prune origin 

刪除被合併到當前分支

$ git branch --merged | grep -v '*' | xargs git branch -d 

注意的地方分支機構:如果你不在master然後本地/主機可以被刪除。如果你想保留master分支。

$ git branch --merged | grep -v "\*" | grep -Ev "(\*|master)" | xargs -n 1 git branch -d 
+0

如果可以,在腳本中使用'git for-each-ref'而不是'git branch'。對於這種情況('--merged'),你需要你的Git版本至少爲2.7.0。 – torek

0

如果你想在遙控器上完全一樣,那麼再比clone更好。但這不是一個好的方法。

可以使用

git branch -D BRANCH_NAME 

刪除您當地的分支機構。如果你想獲得合併分支到本地,

git pull origin BRANCH_NAME 
+0

謝謝,「*刪除本地分支*」,好,但「*然後從遠程*獲取該分支」,嗯,爲什麼?遠程分支已成功刪除並且不再存在於遠程服務器上。爲什麼這一步有必要? – xpt

+0

我以爲你想再次取回。編輯答案 – DilumN