【问题标题】:Best practice when pulling story branches from git [closed]从 git 拉故事分支时的最佳实践 [关闭]
【发布时间】:2016-07-07 20:20:50
【问题描述】:

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

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

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

【问题讨论】:

  • 如果git-rebase--interactive 只允许变基合并就好了,但它不允许。
  • FWIW,听起来不太敏捷。
  • 这是一件非常糟糕的事情,但您可以尝试恢复合并。 stackoverflow.com/a/7100005/736079
  • 或者您确实可以重新创建分支并合并到您需要的分支中。最好的办法是一开始就不要陷入这种混乱。
  • 同意这不应该发生,但它经常发生。不幸的是,我们使用 80 年代初期的遗留代码开发了一个应用程序,即使经过几天的回归测试,他们也会在最后一刻发现问题。

标签: git agile


【解决方案1】:

我建议你使用 git flow。

git flow 模型是一个合适的模型,会回答你所有的问题。

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

git flow 的“捕获”是有完整的脚本可以处理您在此过程中所做的每一步,因此很难出错。

【讨论】:

  • 我以前见过这个,如果它被合并了,我是否还需要重新定位。
【解决方案2】:

您可以在合并之前返回分支状态以恢复合并的分支:

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 &lt;release_branch&gt;..&lt;feature_branch&gt;合并的提交

最后将这个分支合并到发布分支中:

git checkout <release_branch>
git merge <feature_branch>

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

【讨论】:

  • 您也可以使用git stash 将您的更改应用到另一个分支
猜你喜欢
  • 1970-01-01
  • 2017-01-20
  • 1970-01-01
  • 2020-03-16
  • 2013-09-25
  • 2018-04-27
  • 2012-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多