2013-03-27 58 views
1

嗨,我刚刚通过GitHub Learn-in-15 minutes tutorial。 GitHub看起来非常好,并且容易拾取。我不明白的一件事是在团队环境中与可能编辑相同文件的人一起工作?GitHub团队使用

从我的理解

  • 会有一个遥控器回购(origin),其中包含应用程序的最新文件。
  • 每个团队成员拉origin
  • 每个团队成员都可以自己的本地编辑的创建分支的文件,提交这个分支,并与当地master合并。
  • 团队成员现在可以将他们的master推送到origin/master

现在,如果2团队成员不要编辑同一个文件会发生什么。

产地V1

MemberA创建V2和推动 产地现在V2

MemberB仍然有V1,但取得了V3,并将其推 不会MemberA推变化回滚原来的V1,因为

或者这是舞台和添加文件的舞台推动进场吗?

IE它不与你推“替换”的所有文件..但只有那些你已经添加到您的舞台/ COMMITED?

回答

4

如果试图推到远程(origin在你的例子)和遥控器上的文件,您试图推比你推都将被拒绝之前已被更新。您必须先从远端开始pull,然后才能解决冲突。

否则,如果不存在冲突,文件只是当一个人推到master更新。请记住,这里有一个完整的过程。一个不会简单地推动主:-)(或合并)。对不起,我不得不。

One does not not simply merge into master

简单地说,如果你有机会到前推遥控器上的一个文件已被更新,那么你将无法推动。如果您更改的文件未在遥控器上更改,您的推送将会成功。

一个基本的流程需要经常拉动你的分支,以保持它与主人保持同步。

+0

哈哈你是什么意思theres awhole过程?那会是什么? 另外,如果我们正在为eclipse中的grails项目工作。我们是否需要手动将我们已经工作的文件添加到暂存区域,或者git是否会自动拾取已更改的文件?git状态我认为? – 2013-03-27 03:56:56

+0

最简单的方法是,如果在有机会推送前远程文件已经更新,那么您将无法推送。如果您更改的文件未在遥控器上更改,您的推送将会成功。 当我拉到获得最新版本...不会把它取代我所有的文件(一些编辑过的)与最新的拉... ...? – 2013-03-27 04:07:29

+0

不,它不会取代,但它会让你知道冲突。它会在你身上解决这个冲突。 – AdamT 2013-03-27 04:11:53

0

Git是,它并不决定您的工作流程美妙 - 你花时间去通过测试并投入生产,通过从开发者的手指一个产品负责人的想法运行的步骤。相反,它只是确定跟踪事物的方式。因此,你的过程可以是你想要的。有些人认为这种开放性太局限了 - 你如何摆脱空白页?

Git-Flow是树枝和分支,并通过各个阶段跟踪开发过程中合并的方法的命名约定。提供团队合作所需的结构非常棒。它通常针对具体的定期发布,因此对于一些发布可能太多。

(还有对Git的流量here一个Git插件)。

如果Git的流量实在是太多了,你可能想看看GitHub Flow,用户仅仅从主分支,打造功能,测试和合并回主。

最终,这些只是处理过程的惯例,您可以根据它们与团队文化的匹配程度,采取尽可能多的或少量的或不采用的方式。