git pull并解决冲突

问题描述 投票:8回答:5

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

  1. 我的同事进行更改并将更改推送给主人。
  2. 我在本地更改我的主人。

到目前为止,根据我的理解,此时我可以:

  1. 拉我的同事工作的主人并解决我最终会遇到的合并冲突。
  2. 创建我的本地备份,克隆主副本的新副本,然后将我的更改合并到主服务器。

我想知道是否有更好的方法来做到这一点。

git
5个回答
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,因为它可以防止意外删除远程上的其他提交。


4
投票

一种(简单*)方式来处理这个没有分支或存储:

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

2
投票

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

  1. 处理新功能时,请从主服务器克隆新分支。始终与主人保持最新的分支机构。
  2. 在编写新功能并将其提交到创建的分支后,您将测试您的应用。
  3. 然后将master合并到工作分支中,如果master中有新的提交,则可能存在合并冲突。解决后 - 再次测试。
  4. 如果一切正常,你应该将你的分支合并到主人。

这就是您可以开发许多新功能并在需要部署时仅合并工作功能的方法。祝你好运,看看这个 - > https://www.codeschool.com/courses/try-git


1
投票

如果你们都在同一个文件上工作,你将不可避免地遇到冲突。您只需要学习如何解决冲突。

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.