需要更新GIT';硕士';在我能够推到GIT';分行';

需要更新GIT';硕士';在我能够推到GIT';分行';,git,Git,我有一个用于开发的简单GIT环境设置。一个是从远程主机克隆的主机,另一个是分支(也存在于远程主机上)。我通常在分支上工作,然后当我想要推动我的更改时,我执行通常的Git命令序列,如: git pull(确保所有内容都是最新的) git添加 git提交-m“消息” git推送 当我执行“git push”时,会收到一条消息,说明: d96001d..d1cf61c branch_release -> branch_release [rejected] master ->

我有一个用于开发的简单GIT环境设置。一个是从远程主机克隆的主机,另一个是分支(也存在于远程主机上)。我通常在分支上工作,然后当我想要推动我的更改时,我执行通常的Git命令序列,如:

  • git pull(确保所有内容都是最新的)
  • git添加
  • git提交-m“消息”
  • git推送
  • 当我执行“git push”时,会收到一条消息,说明:

    d96001d..d1cf61c  branch_release -> branch_release
    [rejected]        master -> master (non-fast-forward)
    error: failed to push some refs to '____________'
    hint: Updates were rejected because a pushed branch tip is behind its remote
    hint: counterpart. If you did not intend to push that branch, you may want to
    hint: specify branches to push or set the 'push.default' configuration variable
    hint: to 'simple', 'current' or 'upstream' to push only the current branch.
    
    为了解决这个问题,我像这样切换分支

    git checkout master.
    
    这给我的主人带来了一大群文件,前奏曲的前缀是“M”,意思是它们被修改了。那我会的

    git checkout branch_release
    
    它似乎也将相同的文件集带到了我的主文件中,我认为这不应该发生,因为我以前在这个分支上做过GIT拉


    我的问题是,在我推送它的一个分支之前,我是否也需要根据设计更新master?如果没有,我是如何错误地设置的,我应该做什么来确保我只需要更新GIT分支。

    如果你想解决非快速forword错误,你必须在推之前拉。错误表示远程主机提交了您的主机没有的内容

    如果只执行推送操作,而不指定分支,则会推送所有分支。您可以指定默认推送分支[2]通过命令[1]指定它

    [1]通过push命令参数指定它

    因此,您可能需要(使用特定分支推送)

    [2]定义默认推送分支

    我认为这可能会有所帮助:

    根据此站点,您可以指定如下默认推送分支:

    git config——全局推送。默认当前

    [编辑]

    正如torek所指出的,simple将是git 2.0版的新git默认值。因此,更新将(在将来)解决这个问题

    git config——global push.default simple

    您可以在此处阅读更多关于此的信息:


    如果您有一个足够新的git,
    git config--global push.default simple
    将是git 2.0中新的“默认值”,对于那些刚接触git的人,甚至是某种“中级”用户来说,这可能是一个更好的建议。(但是,就像冰激凌的味道或者食物中要放多少大蒜一样,“最好的答案”是味道的问题。)好吧,以前也没关系,我只是想我应该加上关于
    simple
    的注释。现在它有一个技术错误,因为Git2.0还没有推出,但每当Git2.0推出时,更新确实会解决它!:-)
    git push origin branch_release