在Git中合并冲突案例

在Git中合并冲突案例,git,Git,我刚刚开始使用Git,以前使用CVS进行版本控制 有人能告诉我如何在Git中处理合并冲突案例吗?在这种情况下,应遵循什么标准程序 在完成以下步骤后,我遇到了一种情况 我已使用git add和git commit将一些文件提交到本地存储库中 后来,当我试图将本地回购更改推送到远程回购时,它失败了,出现了一个非快进错误,并提示我在推之前先拉 因此,我尝试了git pull从远程repo获取最新的数据到本地repo中。Pull失败,并表示存在合并冲突 假设我从远程拉入本地repo,然后执行步骤1(提交

我刚刚开始使用Git,以前使用CVS进行版本控制

有人能告诉我如何在Git中处理合并冲突案例吗?在这种情况下,应遵循什么标准程序

在完成以下步骤后,我遇到了一种情况

  • 我已使用
    git add
    git commit
    将一些文件提交到本地存储库中
  • 后来,当我试图将本地回购更改推送到远程回购时,它失败了,出现了一个非快进错误,并提示我在推之前先拉
  • 因此,我尝试了
    git pull
    从远程repo获取最新的数据到本地repo中。Pull失败,并表示存在合并冲突
  • 假设我从远程拉入本地repo,然后执行步骤1(提交文件)。如果其他人在我推动远程回购之前推动了他们的更改,会发生什么。我相信以合并结束的推送是一种常见的情况。如何处理这些案件


    我假设pull包含fetch+merge。就我而言,自动合并似乎失败了。在上述情况下,我必须做什么?还请告诉我如何避免陷入这种情况?

    以下是我如何进行git提交的快速列表:

  • git克隆
  • 改变
  • git stash
    :这会将未提交的更改隐藏在临时缓存中(并临时将其从工作目录中删除,以便获得干净的副本)
  • git pull
    获取最新的存储库版本
  • git stash pop
    将隐藏的更改应用于本地存储库(并将其从隐藏中删除);这可能会产生冲突,就像合并或重设基础一样
  • 解决任何冲突
  • git add
  • git commit
    ,使用
    -m
    提供短消息或将其保留以打开编辑器
  • git push
    将更改发布到远程

  • 避免您遇到问题的方法是在拉取之前隐藏更改,然后在拉取完成后弹出隐藏。以下是如何执行git提交的快速列表:

  • git克隆
  • 改变
  • git stash
    :这会将未提交的更改隐藏在临时缓存中(并临时将其从工作目录中删除,以便获得干净的副本)
  • git pull
    获取最新的存储库版本
  • git stash pop
    将隐藏的更改应用于本地存储库(并将其从隐藏中删除);这可能会产生冲突,就像合并或重设基础一样
  • 解决任何冲突
  • git add
  • git commit
    ,使用
    -m
    提供短消息或将其保留以打开编辑器
  • git push
    将更改发布到远程

  • 避免您遇到问题的方法是在拉取之前隐藏更改,然后在拉取完成后弹出隐藏。

    当您有冲突的文件时,git将在每个冲突的文件中插入冲突标记。冲突标记包含来自两个分支的代码,如下所示:

     <<<<<<<<< LOCAL_BRANCH_NAME
     local code goes here
     ==========
     merge branch code goes here
     >>>>>>> MERGE_SHA
    

    当您有冲突文件时,git将在每个冲突文件中插入冲突标记。冲突标记包含来自两个分支的代码,如下所示:

     <<<<<<<<< LOCAL_BRANCH_NAME
     local code goes here
     ==========
     merge branch code goes here
     >>>>>>> MERGE_SHA
    

    值得作为第一个调用端口检查。它有一个非常好的,其中包括合并未收集,谢谢你的信息。当然,我需要一些指导。作为第一个停靠港,值得一看。它有一个非常好的,其中包括合并未收集,谢谢你的信息。当然,我需要一些指导。您所做的实际上是一个
    git pull--rebase
    ,无需先提交(并使用更多命令)@hotsoup.Open,感谢您分享您的经验。由于我是这个GIT的新手,所以我不太了解隐藏。我会经历的。你的回答真的很有帮助。同时,请告诉我,如果我陷入了在我的案例中解释的情况,我必须做什么?正如内维克在上面所说的,有一种更直接的方法来做我正在做的事情,而不是隐藏,只需使用git pull--rebase。在您当前的情况下,先进行git-stash、git-pull,然后是git-stash-pop。您所做的实际上是
    git-pull--rebase
    ,无需先提交(并使用更多命令)@hotsoup.Open,感谢您分享您的经验。由于我是这个GIT的新手,所以我不太了解隐藏。我会经历的。你的回答真的很有帮助。同时,请告诉我,如果我陷入了在我的案例中解释的情况,我必须做什么?正如内维克在上面所说的,有一种更直接的方法来做我正在做的事情,而不是隐藏,只需使用git pull--rebase。在你目前的情况下,先做一个git隐藏,git拉动,然后git隐藏弹出。