git pull并解决冲突

时间:2016-01-26 22:51:12

标签: git

我正在学习git,我有一个场景:

  1. 我的同事进行更改并将更改推送给主人。
  2. 我在本地更改了我的主人。
  3. 至于我的理解,此时我可以:

    1. 拉我的同事工作的主人并修复我最终会遇到的合并冲突。
    2. 创建本地备份,克隆主服务器的新副本,然后将我的更改合并到主服务器。
    3. 我想知道是否有更好的方法可以做到这一点。

5 个答案:

答案 0 :(得分:8)

如果远程和本地分支都有不同的更改,而不是仅仅按git pull拉取主控,我宁愿这样做:

git pull --rebase

这可以避免合并提交,并将更改保留在主分支之上。

然而,当不同的人在同一个分支上工作时,你仍然必须解决任何发生的合并冲突,这是一种不好的做法,特别是因为它会导致冲突。

如果进行微小更改,您的应用程序只会应用于顶部。您正在更改历史记录,但只更改本地,而不是遥控器。

需要git push --force。您只需git push就可以了。

通常,您应该处理功能分支并将它们合并回主分支。

在主分支上工作时,还可以通过以下方式使功能分支靠近主分支:

git checkout feature-branch
git rebase origin/master

然而,这里需要git push --force功能分支,因此如果不止一个人在同一个功能分支上工作,应该注意不要使用此策略。

如果想要使用rebase并推送强制,请考虑使用git push --force-with-lease而不是git push --force,因为它可以防止意外删除遥控器上的其他提交。

答案 1 :(得分:4)

一种(简单*)方式来处理这种情况而不进行分支或存储:

  1. 在本地暂存/提交您的更改
  2. 拉远程
  3. 此时您将收到任何合并冲突的通知。如果git无法自动解决合并冲突,它将在您设置为默认合并编辑器的任何编辑器中打开这两个版本。我推荐BeyondCompare。
  4. 提交合并,推送合并并提交远程主控

答案 2 :(得分:2)

根据我的经验,最好的方法是:

  1. 在处理新功能时,请从主服务器中克隆新分支。始终与主人保持最新的分支机构。
  2. 在编写新功能并将其提交到创建的分支后,您将测试您的应用。
  3. 然后将master合并到工作分支中,如果master中有新的提交,则可能存在合并冲突。解决之后 - 再次测试。
  4. 如果一切正常,请将您的分支合并到主人。
  5. 这就是如何在需要部署时开发许多新功能并仅合并工作的功能。祝你好运并检查一下 - > https://www.codeschool.com/courses/try-git

答案 3 :(得分:1)

如果您同时处理同一个文件,那么您将不可避免地遇到冲突。您只需要学习如何解决冲突。

如果你想避免解决冲突,那么也许你们应该将任务委托给另一个涉及处理不同文件的任务。

答案 4 :(得分:0)

我相信git sync会很好。 Git sync提交您的更改,提取master中存在的所有更改,然后将所有更改推送到master。