2012-01-09 114 views
0

最近从svn移到git,请原谅我的新手问题。Git签到分支,如果主人不同步

在我们的发布过程中,我们针对master(和开发分支)进行了编码,每隔几周发布一次,在那个时候,我们创建一个分支并释放该分支。

错误修复进入分支,我们用这些修复更新发布服务器。

现在,当我尝试在git中执行此操作并尝试将更改提交到发布分支时,它不允许我提交并将更改推送到分支,除非我的主控与主/从同步。如果有很多版本分支,这会变得很混乱,现在我必须确保它们中的每一个都是同步的,然后才能修复发行版中的错误并检查它。

您如何解决此问题?

回答

2

我的团队目前正在按照您在SVN中描述的方式执行发布。代码反对主干,分支和发布。使用Git,工作流程改变 - master匹配生产,并且从未被触及,创建和移除分支在Git中是无痛的和'便宜的芯片',所以每个更改/修补程序/开发总是针对分支。这也使您能够分别跟踪每个开发。

开发完成并测试后,合并到master,标记并释放。对于热修复,分支master,测试,发布和合并到master

对于在其他分支机构开发的人员,可以使用merge轻松地将分支带回到最新状态。

看一看github上使用Git如何发展,一个非常有趣的阅读应该回答你的问题 - https://github.com/usm-data-analysis/usm-data-analysis.github.com/wiki/Developing-with-git

0

你只是在做“混帐推”?你可以使用“git push origin somebranch”来推送一个分支(而不是所有匹配的名称)。

+0

是的,我只是在做“混帐推”。我会尝试你的建议。谢谢。 – 2012-01-09 13:29:47

+0

谢谢,这个线程也很有帮助。 http://stackoverflow.com/questions/948354/git-push-current-branch。我做了一个“git config --global push.default current”,它只推送当前签出的分支。 – 2012-01-09 13:52:32

0

您正在使用纯git push。默认git push将尝试推送每个分支。您可以将您的配置设置为使用push.default = tracking。

git config push.default tracking 

git config --global push.default tracking 

随着push.default =跟踪,git push将只推当前分支。