Github专用linux服务器:推送主服务器时出错

Github专用linux服务器:推送主服务器时出错,git,atlassian-sourcetree,Git,Atlassian Sourcetree,对不起,如果我不能解释发生了什么,因为我不知道发生了什么。每次我尝试将主分支推送到我的服务器时,它都会给我这个错误消息 远程主分支和本地主分支之间存在冲突,通常是由于在当前头更改之前推送到远程的更改引起的 例如: Remote和您都有更改ID1abcde 有人提交并推送2ef1234(其父级为1abcde) 远程磁头现在是2ef1234 您使用1abcde的父级提交356789a(因为您尚未提取)。您的本地主管现在是356789a 您尝试将356789a按到遥控器 您会遇到此错误,因为它试图创

对不起,如果我不能解释发生了什么,因为我不知道发生了什么。每次我尝试将主分支推送到我的服务器时,它都会给我这个错误消息


远程主分支和本地主分支之间存在冲突,通常是由于在当前头更改之前推送到远程的更改引起的

例如:

  • Remote和您都有更改ID
    1abcde
  • 有人提交并推送
    2ef1234
    (其父级为
    1abcde
  • 远程磁头现在是
    2ef1234
  • 您使用
    1abcde
    的父级提交
    356789a
    (因为您尚未提取)。您的本地主管现在是
    356789a
  • 您尝试将
    356789a
    按到遥控器
  • 您会遇到此错误,因为它试图创建
    1abcde->356789a
    的历史记录,但已经有
    1abcde->2ef1234
    的历史记录
解决方案:像上面所说的那样执行一个
git pull
(或者使用Sourcetree的同步功能,因为您也将其标记为Sourcetree,更多信息请参见中的文档),然后再次推送

如果你做一个拉式操作,git就可以正确地构建一个类似于
1abcde->2ef1234->356789a
的历史记录,因为它既有你的更改,也有远程更改,并且可以正确地排列它们。但是,请注意,如果远程更改编辑了您已编辑的文件,则现在存在合并冲突,必须相应地解决该冲突