繁体   English   中英

git:从master分支中删除单个提交

[英]git: remove single commit from the master branch

我无意中对master而不是分支)进行了一些更改(提交C)。 后来我根据此更改创建了其他分支( branch1branch2 )。 现在,我想从所有分支中删除由提交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

其中DnewLnew分别是DL的重新版本。

免责声明:我尚未测试过; 请先在您的回购副本上对其进行测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM