【发布时间】:2013-09-16 21:10:01
【问题描述】:
我在另一个问题上被链接到this blog,我读到了这个关于某个 git 工作流的警告:
这是导致大量头发拉扯的实际场景。
- 团队正在使用合并工作流。很多人改变的东西真的很快。典型的风格是
- 处理你的东西
- 在本地提交
- git pull 并希望没有冲突
- 在其他人进入之前尽可能快地进行 git push
- 许多团队成员都在使用 Tortoise Git,它运行良好,但他们从 Tortoise SVN 迁移,却不了解 Git 和 Subversion 之间的潜在差异。
- 合并冲突经常发生,因为太多人做了太多事情
- Tortoise Git 的一位用户会执行拉取操作,遇到合并冲突,解决合并冲突,然后在提交结果时仔细查看要提交的文件列表。那里有很多文件,他知道合并冲突只涉及几个文件。对于他的提交,他取消选中了他未参与的所有其他文件更改,提交了结果并推送了提交。
- 结果:其他人在此用户的上一次提交和本次提交之间完成的所有提交都被丢弃了
我不确定我是否理解这将如何发生?更具体地说:
- 您如何能够推动您所处的“错误”状态?正如我认为我理解的那样,这需要
--force,但这里的故事是它被关闭了。用户在提交冲突修复和推送之间是否不需要pull? - 在这里丢弃的意思是我认为的意思吗?我很难相信它们会被“移除”,我想实际结果更像是它们正在被撤消?
【问题讨论】:
-
您所说的“其他人在此用户的上一次提交和本次提交之间完成的提交”是什么意思?提交是在那个时间范围内提交的,还是被推送的?
-
为什么每个人都应该在自己的私有分支上工作,而不是每个人都在努力工作的主要例子。
master... -
@Oznerol256 :我不是那句话的原作者,我只是问我是否说对了。我不确定这是什么意思:)
-
@twalberg 但是在非私人分支机构工作肯定有好处吗?合作?特别是当它不是主分支时?
-
@Nanne 在分布式 VCS 中最好在私有分支上完成所有工作,然后将您的工作合并到公共分支中。这导致公共分支上的流量大大减少,冲突和其他竞争条件的频率相应显着下降。
标签: git version-control merge merge-conflict-resolution