git - 如何将一个更改从旧分支 merge 到新分支?

标签 git

场景:

  • 主分支开发
  • 将 master 分支到一个 Feature 分支,并将其发送给 QA,其中包含一个 Feature
  • 在 master 中开发更多
  • git checkout 功能
  • 做一个小修复
  • 将修复后的功能发送回 QA
  • git checkout master
  • git merge 功能

想象一下,当 Git 说“好吧,你想让 master 看起来像 Fix now”,然后扔掉我所有的“dev some more”更改时,我感到很惊讶。我需要它只应用与两个分支 fork 时不同的唯一标签。

我如何执行这个简单明了的场景?噩梦是我在 master 中进行相同的更改,然后当相同的更改进入“生产”分支时遇到不相关的不可调和的 merge 冲突...

最佳答案

如果没有人依赖你的功能分支(即如果没有人从你推送的 hat 分支中提取),我肯定会在 master 之上重新设置它的基线:

git checkout master
# make sure master is up-todate
git pull

# rebase my feature branch on top of master
git checkout myFeatureBranch
git rebase origin/master

这会在 master 之上重放您的修改,并且您可以在您的功能分支中本地解决任何冲突。

然后 merge 回到 master 是一个微不足道的快进

git checkout master
git merge myFeatureBranch

最后你可以推送 master:上游仓库将再次接受这些更改作为快进 merge (你只是在 origin/master 之上添加新提交)

关于git - 如何将一个更改从旧分支 merge 到新分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20985036/

相关文章:

从 git 导入项目后,eclipse 源文件夹不是 java 项目

git - 仅压缩最新提交的更改

git - PAT(个人访问 token )的每个项目或每个 repo 范围

java - 通过 java 程序执行命令时如何为命令提示符编写/提供输入

git - 使用 git (dokku) 部署时出错 - 超时/管道损坏

git - "Thread safe"git pull 或如何避免 ".../.git/index.lock' : File exists. "

Git 没有那个文件或目录

git - 在 Visual Studio 2015 中同步时使用 rebase

git - Go:无法在符号链接(symbolic link)中打包

ruby-on-rails - 如何完全放弃对主题分支所做的更改