[英]git: remove single commit from the master branch
我无意中对master
而不是分支)进行了一些更改(提交C)。 后来我根据此更改创建了其他分支( branch1
和branch2
)。 现在,我想从所有分支中删除由提交C
引入的更改(并将其移至branch-C
)。 可能吗?
现在的情况:
A - B - C - D - - L - M - L - M master
| \
| - N - O - P branch2
\
- E - F - G branch1
出席情况:
- C branch-C
/
A - B - D - - L - M - L - M master
| \
| - N - O - P branch2
\
- E - F - G branch1
您必须重新设置每个分支的基准,因为每个提交都通过哈希引用整个父提交链。
你可以做类似的事情
for br in master branch1 branch2
do
git rebase --onto B C "$br"
done
git branch branch-C C
仅在没有冲突的情况下,编写的循环才能无缝运行。 通常,我建议手动执行它。
另外,如果您是手工操作,则可以进行一些优化。 例如
git rebase --onto B D master
git rebase --onto Dnew D branch1
git rebase --onto Lnew L branch2
其中Dnew
和Lnew
分别是D
和L
的重新版本。
免责声明:我尚未测试过; 请先在您的回购副本上对其进行测试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.