当我在其他分支上工作时,如何确定是否没有人更改 master 分支? (Git)
How can I be sure if nobody changed master branch while I'm working on other branch? (Git)
伙计们!
我创建了一个新分支并在那里工作了一段时间。那次我的同事更改了 master 中的一些代码,但问题是很多代码都被更改了,现在我们无法将所有这些东西合并到 master 中,因为我的代码不适合 master 中的新更改。
我们应该如何处理这些情况?我们是否应该更好地讨论我们的职责范围并更独立地设计界面?
因为有时我依赖主分支中的代码库,但有时 类 函数在那里发生变化,所以我编写的代码不再起作用(例如,主代码中的某些方法是已删除,但我将其用于我的分支)。
别让我脑袋爆炸,请给我你的反馈!
永久竞争条件和变基
这不是 "situation"。在侧分支上工作时更改主分支是 normal.
换句话说:您总是处于使用主分支的竞争状态。那是生活的一部分。 正常。不要试图回避它。
您可以通过在合并或拉取请求或您正在做的任何事情之前将您的分支重新定位到主分支来减轻这种持续竞争条件的明显影响。但请注意,这在很大程度上只是将影响转移到了不同的位置;它使树更好,并且在合并过程中更有可能不发生冲突。
合并冲突
and now we can't merge all these stuff into the master cause my code doesn't fit the new changes in master
好的,那部分是错误的。 课程你可以合并到master
。您只是不能自动合并到 master
。 存在冲突,您必须解决它们。好吧,解决他们!这不是火箭科学。
同样:合并冲突是正常。你需要接受它们并学会应对它们。
这里真正的问题是名字。合并是创建提交。您正在做的是要求 git 自动创建提交,因为您太懒惰或太人性化/容易犯错而无法自己做。 Git 会这样做,但有时它会说,"I can't do this part automatically, you'll have to help me by doing it manually." 所以你这样做,然后提交,全部完成。如果我们 调用 类似 "automatic / manual commit creation" 的东西,而不是使用合并和冲突这样的词,我们就不会纠缠不清了。
这与我在回答的第一部分中所说的有关。如果存在冲突,它们将在 rebase 期间出现,就像它们在以后的合并期间出现一样肯定。你会解决它们。这没什么大不了的,这很好,因为你已经将处理冲突的责任转移到你自己的机器上,这样冲突 就不会 发生(或者可能不会) 在合并时。
早点经常变基
Cause sometimes I rely on a code base in a master branch but also sometimes classes of functions change there, so code I write doesn't work anymore (for example, some method in a master code was removed but I used it into my branch).
解决这个问题的方法就是按照我在第一部分中所说的去做,经常。每隔一两个小时,提交您在分支上所做的事情,切换到主分支,然后拉取。现在切换回分支并将其变基到主分支。现在您已经获得了主分支中的所有新内容,作为 your 分支的一部分。如果您的代码不再有效,您会立即知道并可以更新它。
伙计们!
我创建了一个新分支并在那里工作了一段时间。那次我的同事更改了 master 中的一些代码,但问题是很多代码都被更改了,现在我们无法将所有这些东西合并到 master 中,因为我的代码不适合 master 中的新更改。
我们应该如何处理这些情况?我们是否应该更好地讨论我们的职责范围并更独立地设计界面?
因为有时我依赖主分支中的代码库,但有时 类 函数在那里发生变化,所以我编写的代码不再起作用(例如,主代码中的某些方法是已删除,但我将其用于我的分支)。
别让我脑袋爆炸,请给我你的反馈!
永久竞争条件和变基
这不是 "situation"。在侧分支上工作时更改主分支是 normal.
换句话说:您总是处于使用主分支的竞争状态。那是生活的一部分。 正常。不要试图回避它。
您可以通过在合并或拉取请求或您正在做的任何事情之前将您的分支重新定位到主分支来减轻这种持续竞争条件的明显影响。但请注意,这在很大程度上只是将影响转移到了不同的位置;它使树更好,并且在合并过程中更有可能不发生冲突。
合并冲突
and now we can't merge all these stuff into the master cause my code doesn't fit the new changes in master
好的,那部分是错误的。 课程你可以合并到master
。您只是不能自动合并到 master
。 存在冲突,您必须解决它们。好吧,解决他们!这不是火箭科学。
同样:合并冲突是正常。你需要接受它们并学会应对它们。
这里真正的问题是名字。合并是创建提交。您正在做的是要求 git 自动创建提交,因为您太懒惰或太人性化/容易犯错而无法自己做。 Git 会这样做,但有时它会说,"I can't do this part automatically, you'll have to help me by doing it manually." 所以你这样做,然后提交,全部完成。如果我们 调用 类似 "automatic / manual commit creation" 的东西,而不是使用合并和冲突这样的词,我们就不会纠缠不清了。
这与我在回答的第一部分中所说的有关。如果存在冲突,它们将在 rebase 期间出现,就像它们在以后的合并期间出现一样肯定。你会解决它们。这没什么大不了的,这很好,因为你已经将处理冲突的责任转移到你自己的机器上,这样冲突 就不会 发生(或者可能不会) 在合并时。
早点经常变基
Cause sometimes I rely on a code base in a master branch but also sometimes classes of functions change there, so code I write doesn't work anymore (for example, some method in a master code was removed but I used it into my branch).
解决这个问题的方法就是按照我在第一部分中所说的去做,经常。每隔一两个小时,提交您在分支上所做的事情,切换到主分支,然后拉取。现在切换回分支并将其变基到主分支。现在您已经获得了主分支中的所有新内容,作为 your 分支的一部分。如果您的代码不再有效,您会立即知道并可以更新它。