0

最近从 svn 搬到了 git,请原谅我的新手问题。

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

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

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

你怎么解决这个问题?

4

3 回答 3

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-混帐

于 2012-01-09T09:29:21.297 回答
0

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

于 2012-01-09T10:12:00.920 回答
0

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

git config push.default tracking

或者

git config --global push.default tracking

使用 push.default=tracking,git push只会推送当前分支。

于 2012-01-09T15:30:14.810 回答