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
应该指出,在同样的问题发生在翻领 - 推后在主人身上,我无法在没有检查主人的情况下推动沙箱,进行拉动然后切换回沙箱。
必须有一个更简单的方法 - 任何帮助,将不胜感激。