Git多开发者多分支

Git多开发者多分支,git,branch,Git,Branch,我们已经使用git几个月了,每个项目只有一个开发人员在工作。这很好,我得到了主题分支的概念,发布分支,合并和推拉到远程服务器 然而,当我们有多个开发人员在同一个存储库上工作时,我感到非常困惑。 我有错误消息,表明我真的不知道我在做什么 那么,我要努力实现什么; 主要开发人员正在开发一个存储库或系统a。他创建了一个“Version2.0_Alpha”分支,在本地工作,并定期推送到我们的git服务器。主版本是当前发布的版本。 我想帮他做一个特别的功能。我基于远程分支“版本2.0\u Alpha”创建

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

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

那么,我要努力实现什么; 主要开发人员正在开发一个存储库或系统a。他创建了一个“Version2.0_Alpha”分支,在本地工作,并定期推送到我们的git服务器。主版本是当前发布的版本。 我想帮他做一个特别的功能。我基于远程分支“版本2.0\u Alpha”创建了一个本地分支“Feature\u 15”。我做我的工作,我向本地存储库提交文件,我的同事继续处理他的本地存储库,但也将其推送到服务器

当我需要将我的更改推送到服务器上时,我希望我可以只推我的“Feature_15”。然后,我的同事可以继续编写他的代码,当他准备好检查所做的工作时,如果一切正常,请返回他的分支“Version2.0_Alpha”,并合并到我的“Feature_15”中

但这不起作用,因为git决定让我第一次使用最新的“版本2.0_Alpha”,然后我就迷失在我的知识和理解中

有没有人能告诉我,我是否走在正确的思考道路上,只是错过了一些步骤,或者我走错了方向

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

您可以这样开始

A--B--C  Version 2.0_Alpha
       \
        X--Y--Z  Feature_15
然后他做出改变

A--B--C--D--E--F
       \
        X--Y--Z
您需要将您的更改重新定位到他的
头部
,以便他可以进行一次干净的
合并

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

您可能创建了一个本地分支(功能\u 15),用于跟踪远程分支(版本2.0\u Alpha),而您需要创建一个新的单独分支。如果这是真的,那么您正试图将本地分支推送到远程“Version2.0_Alpha”分支,而不是创建远程“Feature_15”分支,这是错误的,对您不起作用。请参阅关于修复该问题的说明(请注意,您不需要删除本地分支,只需删除跟踪即可)。

您所说的一切听起来都很好且正确(至少对我而言)

如果您遇到了一些错误,也许您可以准确地显示您遇到的错误

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

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唯一需要处理的事情是,当您需要将更改推送到某个分支时,自上次推送之后,有人已经推送了某些内容,但只要您和您的同事在不同的分支上工作,这就不应该是一个问题。

重定基址是不必要的,并且可能(也会)发生对没有经验的git用户造成混乱和数据丢失。“重定基址的唯一优势是保持历史的线性,这对某些人来说甚至不是一个优势。”wRAR坚决不同意。如果这支球队不学会重新定位,他们将陷入一个受伤的世界。重定基比“保持历史线性”有更多的优点:合并提交很糟糕,很难调试;你被迫在历史的适当时刻处理冲突;交互式重定基调提供了一系列很好的工具,可以帮助您保持历史记录的整洁。谢谢wRAR,我认为您是正确的。我以为我在远程版本2.0_Alpha上创建了一个新分支,而我可能在远程版本2.0_Alpha上创建了一个跟踪分支。所以我要做的是创建一个到远程版本2.0_Alpha的跟踪分支,然后从这个功能创建一个新分支。工作完成后,将功能_15推至远程。这是路吗?