最近从svn转到git,原谅我的新手问题。
在我们的发布过程中,我们针对主(和开发分支)进行编码,我们每隔几周发布一次,在那个时间点,我们创建一个分支并针对该分支发布。
错误修复继续进行分支,我们使用这些修复程序更新发布服务器。
现在,当我尝试在git中执行此操作并尝试将更改提交到发布分支时,它不会让我提交并将更改推送到分支,除非我的主服务器与origin / master同步。如果有许多发布分支,这会变得混乱,现在我必须确保它们中的每一个都是同步的,然后才能修复发行版中的错误并将其检入。
你如何解决这个问题?
答案 0 :(得分:2)
我的团队目前正在按照您在SVN中描述的那样执行发布。针对主干,分支和释放的代码。
使用Git,工作流程发生了变化 - master
与生产相匹配,永远不会被触及,创建和删除分支是无痛的,并且在Git中“便宜的芯片”,因此每个更改/修补程序/开发总是针对一个科。这也使您可以单独跟踪每个开发。
完成开发并进行测试后,合并master
,标记和发布。对于Hot Fix,请分支master
,测试,发布并合并到master
。
对于在其他分支机构开发的人员,可以使用merge
轻松地将分支机构恢复到最新状态。
看看github是如何使用git开发的,这是一个非常有趣的读物,可以回答你的问题 - https://github.com/usm-data-analysis/usm-data-analysis.github.com/wiki/Developing-with-git
答案 1 :(得分:0)
你只是在做“git push”吗?您可以使用“git push origin somebranch”推送单个分支(而不是所有具有匹配名称的分支)。
答案 2 :(得分:0)
您使用的是普通git push
。默认情况下,git push
将尝试推送每个分支。您可以将配置设置为使用push.default = tracking。
git config push.default tracking
或
git config --global push.default tracking
使用push.default = tracking,git push
只会推送当前分支。