Git多开发人员多分支

时间:2013-02-12 00:24:36

标签: git branch

我们已经使用git几个月了,现在每个项目只有一个开发人员在工作。这很棒,我得到主题分支的概念,发布分支合并和推送&拉到远程服务器。

但是,当我们有多个开发人员在同一个存储库上工作时,我会感到非常困惑。 我有错误消息表明我真的不知道我在做什么......

那么我该尝试什么呢? 主要开发人员正在使用存储库或系统A.他创建了一个“Version 2.0_Alpha”分支,他在本地工作并定期推送到我们的git服务器。主人是当前发布的版本。 我想帮助他并做一个特定的功能。我基于远程分支'Version 2.0_Alpha'创建了一个本地分支'Feature_15'。我做我的工作,我承诺本地存储库,我的同事继续在他的本地存储库工作,但也推送到服务器。

当我将更改推送到服务器时,我希望能够推送我的'Feature_15'。然后我的同事可以继续处理他的代码,当他准备好检查已经做了什么,如果一切正常,回到他的分支'Version 2.0_Alpha'并合并到我的'Feature_15'。

但是这不起作用,因为git决心让我的第一个拉出最新的'Version 2.0_Alpha',然后我迷失了我的知识和理解。

如果我处于正确的思考路径但只是错过了一些步骤,或者我是以错误的方式解决这个问题,有人可以告诉我。

我们正在使用有限的功能git-gui,但在需要时很乐意使用gitExt或Git批处理。

3 个答案:

答案 0 :(得分:0)

您可能创建了一个跟踪远程分支(版本2.0_Alpha)的本地分支(Feature_15),同时您需要创建一个新的单独分支。如果确实如此,那么您正试图将本地分支推送到远程“Version 2.0_Alpha”分支,而不是创建一个远程“Feature_15”分支,这是错误的并且不适合您。有关修复此问题,请参阅How do you stop tracking a remote branch in Git?(请注意,您无需删除本地分支,只需删除跟踪)。

答案 1 :(得分:0)

你所说的一切听起来都不错(至少对我而言)。

如果您收到某些错误,也许您可​​以准确显示您所犯的错误。

您还可以做一些事情,检查提交文件时您所在的分支(它将显示在git status输出中)。检查提交的历史记录,使用一些GUI工具(我在Linux上使用gitk,但有plenty of others)或通过命令行:

git log --graph --pretty=oneline --abbrev-commit --decorate=full --all

您可以将--all替换为您要查看的分支列表,例如:

git log --graph --pretty=oneline --abbrev-commit --decorate=full origin/Version 2.0_Alpha origin/Feature_15

你需要处理git的唯一一件事就是当你需要将更改推送到某个分支时,自从你上次拉动以来某人已经推了一些东西,但只要你和你的同事在不同的分支上工作,它就不应该是问题。

答案 2 :(得分:-1)

你这样开始

A--B--C  Version 2.0_Alpha
       \
        X--Y--Z  Feature_15

然后他做出改变

A--B--C--D--E--F
       \
        X--Y--Z

您需要将更改变更为HEAD,以便他可以干净merge

 A--B--C--D--E--F
                 \
                  X'--Y'--Z'

ref