我对Git很新。现在我只有一个存储库的主分支。我开始与另一个人合作,我很困惑如何在这个人的同时做出调整。我正在使用Tower,所以我不需要在命令行学习任何东西 - 我只是在寻找流程描述。
我的直觉是每个人都有我们自己的分支机构,我们正在单独处理。这是正确的方法吗?一旦工作完成,我们是否只将这些分支与我们的主人合并?
让我们说这个人做了一个改变并将其提交到主分支,而我一直在分支中的其他东西 - 我如何将他的工作与我自己的工作合并?
答案 0 :(得分:5)
如果你们都在同一个分支上工作,并且他推动了他的更改,那么你将无法推动你的更改。但您可以做的是将更改提取到本地副本中,这将合并您和他的更改。如果存在一些冲突,则必须手动解决。然后,您可以推送该合并的结果,该结果将包含两组更改。
一般来说,为你设一个分支,为他设一个分支可能没有意义。有意义的是创建“feature branches”。如果您正在处理功能A,请为其创建分支。完成后,将其合并回master。例如,即使您的功能尚未完成,也可以让您掌握紧急错误修正。
答案 1 :(得分:2)
一个人必须先推,然后如果你试图推,你会得到一个错误,有一些变化,推动回购会覆盖这些变化。如果发生这种情况,您需要获取这些更改并将它们合并到您的工作中,然后推送到repo并应该接受它。其他人也必须这样做。
答案 2 :(得分:2)
您必须pull
更新merging
这些更改(可能会解析conflicts
),然后才能push
对remote
进行更改上次pushed
时分歧(其他人有pulled
)。
这是Git独有的不,每个VCS都要求您在推送到中央/远程存储库之前提取更改,处理合并和冲突。
这个工作流程没有什么神奇之处。
像Git这样的D(归因)VCS的不同之处在于每个存储库都是远程,并且中央存储库的想法是一个约定,不像CVS或Subversion(和其他集中的)。
Git非常善于以非常复杂的方式处理合并,因此它可以最大限度地减少冲突。