2012-09-05 58 views
0

我有一個本地git存儲庫與兩個遠程('起源'是爲內部開發,'其他'是外部承包商使用)。我的本地存儲庫中的主分支在'origin'中跟蹤主,這是正確的。我還有一個「外部」分支,跟蹤「其他」中的主人。我現在面臨的問題是,我的主人布拉克也想推到'其他'的主人,這是一個問題。有什麼辦法可以指定本地主人不應該推送給其他/主人?默認情況下,我可以讓git將主分支推送到所有遙控器嗎?

我已經嘗試過更新我的.git/config文件包括:

[branch "master"] 
    remote = origin 
    merge = refs/heads/master 
[branch "external"] 
    remote = other 
    merge = refs/heads/master 
[push] 
    default = upstream 

remote show仍然顯示我的主人正在推動兩個遙控器:

toko:engine cmlacy$ git remote show origin 
Password: 
* remote origin 
    Fetch URL: <REPO LOCATION> 
    Push URL: <REPO LOCATION> 
    HEAD branch: master 
    Remote branches: 
    master    tracked 
    refresh-hook  tracked 
    Local branch configured for 'git pull': 
    master merges with remote master 
    Local ref configured for 'git push': 
    master pushes to master (up to date) 

這些都是正確的。

toko:engine cmlacy$ git remote show other 
Password: 
* remote other 
    Fetch URL: <REPO LOCATION> 
    Push URL: <REPO LOCATION> 
    HEAD branch: master 
    Remote branch: 
    master tracked 
    Local branch configured for 'git pull': 
    external merges with remote master 
    Local ref configured for 'git push': 
    master pushes to master (local out of date) 

最後一節是問題所在。 '外部'應該與其他/主人合併,但是主人不應該推到其他/主人。工作從來沒有功。

回答

1

.git/config中,在[remote "other"]部分下添加參數push = external:master

+0

完美。謝謝! – Curtis

0

是的,你可以指定向縱深推進,爲爲例:

git push <remote> <local branch name>:<remote branch name> 

git help push會給你答覆順便說一句。

編輯:自動做到這一點,你可能要設置跟蹤,看看:http://mislav.uniqpath.com/2010/07/git-tips/和(在Configure a local branch for push to specific branch你可能會看看爲好)設置你的push.defaulttracking

我希望解決它: )

+0

謝謝,但我知道我可以指定我想推到特定的分支。我正在尋找更多的方法來改變默認行爲,所以我不需要。 – Curtis

+0

我見過的第二個鏈接 - 這就是我將push.default設置爲上游的想法(「跟蹤」在1.7中已棄用)。我設置了所有跟蹤,但似乎無法讓我的主分支在「其他」回購中「追蹤」主人。我編輯了我的問題以顯示我的'git remote show'輸出。 – Curtis

相關問題