假设我们在 Git 中有以下情况:
创建的存储库:
mkdir GitTest2 cd GitTest2 git init
master 中的一些修改发生并被提交:
echo "On Master" > file git commit -a -m "Initial commit"
Feature1 分支了 master 并完成了一些工作:
git branch feature1 git checkout feature1 echo "Feature1" > featureFile git commit -a -m "Commit for feature1"
同时,在master-code中发现了一个bug,并建立了一个hotfix-branch:
git checkout master git branch hotfix1 git checkout hotfix1
该错误已在 hotfix 分支中修复并合并回主分支(可能在拉取请求/代码审查之后):
echo "Bugfix" > bugfixFile git commit -a -m "Bugfix Commit" git checkout master git merge --no-ff hotfix1
feature1 的开发仍在继续:
git checkout feature1
假设我需要在我的功能分支中进行修补程序,可能是因为该错误也发生在那里。如何在不将提交复制到我的功能分支中的情况下实现这一点?
我想防止在我的功能分支上获得两个与功能实现无关的新提交。如果我使用拉取请求,这对我来说尤其重要:所有这些提交也将包含在拉取请求中并且必须进行审查,尽管这已经完成(因为修补程序已经在主服务器中)。
我不能做git merge master --ff-only
:“致命:不可能快进,中止。”,但我不确定这是否对我有帮助。