【问题标题】:Github multiple branches/developersGithub 多个分支/开发者
【发布时间】:2020-04-30 18:14:20
【问题描述】:

所以我今天开始使用 github。 基本上,我们中有两个人(程序员)将使用 PIC 微控制器在一个项目上工作。我做了一些实验并阅读了一些东西和术语,例如分支、提交、大师等。 所以假设我只有一个包含 4 行的 main.c 文件。

这是我们的主文件。我们两个人同时发展。现在我们从这个 master 中创建两个分支(所以基本上是当前代码的快照)。这两个分支是“branch1”和“branch2”,我使用 branch1 进行更改,而我的合作伙伴使用 branch2。 我在 line2 和 line3 之间插入了一行“dummy = 0”,而我的搭档在 line3 和 line4 之间插入了“dummy = 0”。所以在一天结束时,我会将我的更改提交到 branch1,拉一个请求以将我的更改合并到 master。 现在,我的合作伙伴如何对新的主文件进行更改(在我提交我的文件之后)?请注意,我们从同一个主文件开始。 谢谢

到目前为止我们所做的:我们还没有尝试同时进行编辑。我们现在所做的是我让他在 branch2 上进行编辑,然后尝试拉取请求以便我可以批准它,以便他从分支 2 进行的编辑执行到 master。我的问题在于,我们很可能每天都从同一个主代码开始,因此每小时所做的每一次更改都不会延续到另一个人的副本

【问题讨论】:

  • 您好,欢迎来到 SO。尽量不要将相关信息放在 cmets 中。 edit 你的帖子,而不是!快乐狩猎

标签: github


【解决方案1】:

Git 是一个处理增量差异的版本控制系统。

在您的场景中,您有 3 个分支:masterbranch1branch2。你们都在两个开发分支(不是主分支)中处理同一个文件。

一旦您在 branch1 上提交了您的编辑,您的合作伙伴将在 branch2 中看不到任何内容:它们是不同的路径。

您的合作伙伴要做的就是将您的最新提交merge 提交到branch2。就这样,两条不同的道路相遇,又合而为一。如果您要继续使用branch1,请冲洗并重复该过程。

既然你说你们都在同一个文件中添加了行,期待conflicts:“合并”意味着从文件开始,就像它当时一样(在branch2的开头),然后重播所有编辑在每次提交中按顺序完成。当您必须将两个分支的编辑放在一起时,这可能会发生冲突。例如,您在第 4 行添加了dummy = 0。您的伙伴也这样做了,但在第 4 行写了dummy = 1。Git 不会为您决定,您必须解决冲突并决定要使用哪一个保留。

请注意,我没有提到主人。我会把你推荐给gitflow,这对于一个问题来说有点过于宽泛了。

【讨论】:

  • "你的搭档要做的,就是把你最近的commit合并到branch2中。这样,两条不同的路径相遇了,又合而为一了。如果你继续在branch1上,冲洗并重复这个过程。”我认为如果我们合作以使我们不会在开发上交叉路径,这总是安全的?就像前任一样。如果我们有 4 个不同的 c 文件(c1-c4),我只在 c1 和 c2 上工作,而他/她只在 c3 和 c4 上工作?
  • 是的:在branch1 上发生的事情不会在branch2 上发生,直到merge。合并可能会产生冲突。
猜你喜欢
  • 1970-01-01
  • 2013-01-12
  • 1970-01-01
  • 2014-08-19
  • 1970-01-01
  • 2018-01-17
  • 1970-01-01
  • 2015-05-23
  • 2021-10-26
相关资源
最近更新 更多