我们的合并一直有问题,旧代码被新代码合并?
Our merges keep having issues where the older code gets merged over newer?
我们有一个测试分支,我和我的同事将停止测试以进行我们的分支。所以测试 > feature1,测试 > feature2
然后随着提交的进行,我们将它们合并到测试中。
然而在冲刺期间,人们在不同的时间拉入和合并到测试中。
所以在最后,尤其是在发布之前,我们有一些代码似乎是旧的,重写了较新的更改,因为假设有人在 header.js 上的 feature1 分支上工作,而有人在 [上的 feature2 上工作=36=]。
如果他们更改相同类型的区域,例如相同的 html 属性或函数,有时较早拉出的分支(例如具有较旧代码的 feature1)将最终成为赢家。
我想这是因为当它被合并时,有人没有做好确保应该接受哪些冲突的工作。如果 feature1 首先合并到测试中,那么当 feature2 合并时,他们必须在传入更改和当前更改之间做出决定。
代码的改动就是增删改查,通常不是问题。通常是两个人在同一行或函数的不同时间接触的代码。
作为正在进行合并但没有处理 feature1 或 feature2 的人,他们怎么知道接受哪个是最新的?
这发生在我的两个分支上,它们可能涉及 20-30 个文件。我不得不使用 git diff 来追踪每一个代码,看看有什么没有被更新。
所以我的问题是:
- 如何更好地防止这种合并行为?它来自团队中不是我的人
- 如何在不使用 git diff branch1..branch2 然后单独更改旧代码的情况下解决此问题?我使用 gitlens 并且它更容易看到,但我仍然需要弄清楚哪些文件在 feature2 中被触及,然后查找并将它们与测试进行比较,看看部分未被接受。
是否可以再次重新合并 feature2 并让它覆盖测试中的所有内容或再次解决合并冲突?
So at the end especially near a launch, we have some code that seems to be older rewriting the newer changes because say someone was working on feature1 branch which on header.js and someone was working on feature2 on header.js. If they change the same sort of area like the same html attributes or function, sometimes the branch that pulled earlier (say feature1 which has older code) will then come out the winner at the end.
在这种情况下,两个人在两个不同的分支上编辑同一行代码,合并他们之后会出现合并冲突。这种合并冲突通常必须在合并完成之前手动修复。要解决此问题,您需要在团队成员之间进行沟通。促进这一点的一种方法是让两个团队成员在所有合并中一起工作,以便将两个更改正确地接受到最终合并中。
Is it possible to just re-merge feature2 AGAIN and have it override everything in testing or settle merge conflicts again?
不,“re-merge”是不可能的。在这发生之后,您将需要创建一个新分支并进行必要的更改。
我们有一个测试分支,我和我的同事将停止测试以进行我们的分支。所以测试 > feature1,测试 > feature2
然后随着提交的进行,我们将它们合并到测试中。
然而在冲刺期间,人们在不同的时间拉入和合并到测试中。
所以在最后,尤其是在发布之前,我们有一些代码似乎是旧的,重写了较新的更改,因为假设有人在 header.js 上的 feature1 分支上工作,而有人在 [上的 feature2 上工作=36=]。 如果他们更改相同类型的区域,例如相同的 html 属性或函数,有时较早拉出的分支(例如具有较旧代码的 feature1)将最终成为赢家。
我想这是因为当它被合并时,有人没有做好确保应该接受哪些冲突的工作。如果 feature1 首先合并到测试中,那么当 feature2 合并时,他们必须在传入更改和当前更改之间做出决定。
代码的改动就是增删改查,通常不是问题。通常是两个人在同一行或函数的不同时间接触的代码。
作为正在进行合并但没有处理 feature1 或 feature2 的人,他们怎么知道接受哪个是最新的?
这发生在我的两个分支上,它们可能涉及 20-30 个文件。我不得不使用 git diff 来追踪每一个代码,看看有什么没有被更新。
所以我的问题是:
- 如何更好地防止这种合并行为?它来自团队中不是我的人
- 如何在不使用 git diff branch1..branch2 然后单独更改旧代码的情况下解决此问题?我使用 gitlens 并且它更容易看到,但我仍然需要弄清楚哪些文件在 feature2 中被触及,然后查找并将它们与测试进行比较,看看部分未被接受。
是否可以再次重新合并 feature2 并让它覆盖测试中的所有内容或再次解决合并冲突?
So at the end especially near a launch, we have some code that seems to be older rewriting the newer changes because say someone was working on feature1 branch which on header.js and someone was working on feature2 on header.js. If they change the same sort of area like the same html attributes or function, sometimes the branch that pulled earlier (say feature1 which has older code) will then come out the winner at the end.
在这种情况下,两个人在两个不同的分支上编辑同一行代码,合并他们之后会出现合并冲突。这种合并冲突通常必须在合并完成之前手动修复。要解决此问题,您需要在团队成员之间进行沟通。促进这一点的一种方法是让两个团队成员在所有合并中一起工作,以便将两个更改正确地接受到最终合并中。
Is it possible to just re-merge feature2 AGAIN and have it override everything in testing or settle merge conflicts again?
不,“re-merge”是不可能的。在这发生之后,您将需要创建一个新分支并进行必要的更改。