从 git 中提取故事分支时的最佳实践

Best practice when pulling story branches from git

我们最近开始使用 GIT,我们的流程是为每个 task/story(敏捷)创建一个分支。

在某些情况下,需要从发布中提取已合并的分支。做这个的最好方式是什么?

来自 TFS,我们使用标签,很容易将特定项目指向旧的变更集,但是 GIT 我不确定如何最好地做到这一点。如果这是最后一次推送似乎会很容易,但是如果在我必须撤消所有这些之后有 10 次推送,然后只用我想要的那些进行另一个拉取请求?

我建议你使用git流。

git 流模型是一个合适的模型,将回答您的所有问题。

在此处阅读所有相关内容 http://nvie.com/posts/a-successful-git-branching-model/ 完成阅读后,您将能够更好地理解下图:

"catch" 和 git 流程是因为有完整的脚本来处理您一路走来的每一步,因此很难出错。

您可以return在合并前的分支状态恢复合并的分支:

git reflog
git checkout <last_feature_commit_number>
git checkout -b <feature_branch>

然后在你的发布分支上更新这个新分支

git pull --rebase origin <release_branch>

如果有冲突解决,在stage添加文件执行git rebase --continue

您可以查看准备与 git log <release_branch>..<feature_branch>

合并的提交

最终将此分支合并到发布分支中:

git checkout <release_branch>
git merge <feature_branch>

假设您的本地计算机托管合并提交。如果没有,您可以尝试获取远程 reflog,但我不知道是否总是可行(参见 git can I view the reflog of a remote? and Can I recover branch after its deletion in git?