2010-01-20 45 views
7

所以,想象一下,我有,我已經從一些克隆起源的本地存儲庫。在我INTIAL克隆的時間,產地有四個分支:featureA,featureB,featureC。如果我推更改產地證明刪除featureA分支我希望看到一些關於它的下一次被刪除我發出:我如何讓讓Git來警告我可能刪除遠程分支機構

$ git pull origin

但是,什麼情況是,我沒有看到任何東西當我試圖去拉那個特定分支下來

$ git pull origin featureA

我得到以下錯誤:

fatal: Couldn't find remote ref featureA
fatal: The remote end hung up unexpectedly

這完全是有道理的,因爲日Ë分公司其實從遠程刪除這樣啊,裁判是不存在了,但是我不知道爲什麼我沒有收到通知這一事實。遠程我的.git/config中看起來是這樣的:

[remote "origin"]
fetch = +refs/heads/:refs/remotes/origin/
url = [email protected]:/data/git/perecep.git

我已經寫了使用git的LS-遠程與輸出沿混帳分支-r一個小的shell腳本檢測遙控裁判,其分支機構不再存在於服務器上,並提示我,如果我想刪除他們,但我想知道如果我只是在做一些固有的錯在這裏?

回答

2

我不認爲你做錯了什麼。當地分行不賴以生存的遠程分支,它是事務的一個遠程分支完全有效的狀態將被刪除,而你的本地(同一個名字的,表面上相同的歷史)的分支去現有的。這是你所描述的「集中式」方法,如果有的話,這在Git中會被認爲是非正統的。

編輯:切線方向,您可能對git-branch的--track--no-track選項以及branch.autosetupmerge配置變量感興趣。

+0

我下面使用Git更「中央服務器」的工作流程B/C我是在企業環境中,這是開發人員如何而現在筆記本電腦更傾向於共享代碼(通過在中央服務器上創建公共主題分支來推動其變更以進行協作)。由於我們剛剛從SVN過渡,這是他們更加適應的東西。 我想我擔心的是,在創建了幾個這種性質的短暫分支,在特徵/主題集成之後被刪除之後,所有開發人員現在都會在其本地回購庫中擁有大量過時的遠程分支引用。 – NewGitUser 2010-01-20 00:56:02

3

好了,不需要特殊的腳本。我想我忽略了這個命令

$ git remote prune origin

從手冊頁:

 
    prune 
      Deletes all stale tracking branches under . These stale branches 
      have already been removed from the remote repository referenced by 
      , but are still locally available in "remotes/". 

      With --dry-run option, report what branches will be pruned, but do 
      no(sic) actually prune them. 
+0

是否有任何設置可以在更新遙控器時自動實現這一功能? – xenoterracide 2010-08-21 03:36:56