如何防止git中的服务器端automerge

时间:2016-07-25 12:36:42

标签: git

例如,如果我从远程提取更改,然后提交并推送我的更改,当我提交时,其他人推送另一个提交,与我的提交没有冲突,将创建一个新的anonimouse分支,我们的两个提交将合并。有没有办法阻止创建这个分支和自动播放,所以服务器拒绝推送,因为它会有冲突吗?

2 个答案:

答案 0 :(得分:0)

Git不会这样做。如果您在工作期间有push个人push,则! [rejected] master -> master (non-fast-forward) 会因为快进而失败。您将通过

识别它
pull

错误消息。

然后,您需要先merge (在您的客户端执行push)。之后,git push origin master # FAILED git pull origin master # this does a merge on your client git push origin master # OK 将是一个快进的人,并且会成功。

Timer

另请阅读Dealing with non-fast-forward errors

答案 1 :(得分:0)

  

将创建一个新的anonimouse分支,我们的两个提交将合并

没有。推送时git不会自动合并。它要求分支的头部(在接收侧)出现在你现在推送的任何东西的祖先(在发送方),所以它只是将你的新提交附加在已经存在的任何东西之上。

  

有没有办法阻止创建此分支和自动播放,

是的,git会自动通知您有关不匹配的信息,并提供足够的信息来判断您是否只需要执行git pull或是否有事情发生(即有人做了git rebase ... ; git push -f 1}}或git reset ... ; git push -f或类似的。)