2011-09-19 65 views
2

我有點混帳n00b,我在分支上遇到一些困難。我不認爲這個問題已被問到,但它可能只是因爲我不在尋找正確的關鍵字。推一個git分支需要拉另一個?

情況: 我有一個遠程git倉庫和我已簽出機器1 上的主分支我已經做機2上的相同,不同之處在於我已經創建了一個新分支(沙箱)並檢查出。

我在機器2上進行修改,提交和推送東西 - 沒有問題。

然後我就機選擇發生了變化,承諾,並努力推動,但我得到這個錯誤:

To [email protected]:/project.git 
! [rejected]  sandbox -> sandbox (non-fast-forward) 
error: failed to push some refs to '[email protected]:/project.git' 
To prevent you from losing history, non-fast-forward updates were rejected 
Merge the remote changes (e.g. 'git pull') before pushing again. See the 
'Note about fast-forwards' section of 'git push --help' for details. 

如果我做的git拉,我得到:

Already up-to-date. 

所以目前我必須

git checkout sandbox 
git pull 
git checkout master 
git push 

然後它的一切都好。在我看來,考慮到這些是不同的分支,我不應該在沙盒分支上拉動推動對主分區的更改。如果我試圖合併它們,我可以理解它,但那可能永遠不會發生。

我懷疑我的配置文件是一個有點不對勁,所以這裏是:

(Machine 1 - master) .git/config 

[core] 
    repositoryformatversion = 0 
    filemode = true 
    bare = false 
    logallrefupdates = true 
[gui] 
    wmstate = normal 
    geometry = 1920x970+0+0 368 203 

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

[branch "master"] 
    remote = origin 
    merge = refs/heads/master 

而且

(Machine 2 - paid) .git/config 

[core] 
    repositoryformatversion = 0 
    filemode = true 
    bare = false 
    logallrefupdates = true 

[remote "origin"] 
    fetch = +refs/heads/*:refs/remotes/origin/* 
    url = git+ssh://[email protected]/project.git 

[branch "master"] 
    remote = origin 
    merge = refs/heads/master 

[branch "sandbox"] 
    remote = origin 
    merge = refs/heads/sandbox 

應該指出,在同樣的問題發生在翻領 - 推後在主人身上,我無法在沒有檢查主人的情況下推動沙箱,進行拉動然後切換回沙箱。

必須有一個更簡單的方法 - 任何幫助,將不勝感激。

回答

1

找到了答案:

git config --global push.default tracking 

這似乎已經通過問題解決了。

已收到答案禮貌This Site

相關問題