2011-09-19 67 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

相关问题