当前位置:  开发笔记 > 开发工具 > 正文

如何在git中向后移动分支?

如何解决《如何在git中向后移动分支?》经验,为你挑选了3个好方法。

标题不是很清楚.我实际需要经常做的是:

假设我有一个开发正在进行几个提交c1,c2,...和3个分支A,B,C

c1--c2--c3--(B)--c4--(A,C)

分支A和C处于同一提交.

现在我希望分支A回到B所在的位置,这样它就像这样:

c1--c2--c3--(A,B)--c4--(C)

重要的是,这必须在本地和github上进行.



1> Bram Schoenm..:

使用reset子命令:

git checkout A
git reset --hard B
git push --force github

作为旁注,当git reset分支已被推到别处时,你应该小心使用.这可能会给那些已经检查过更改的人带来麻烦.


如果分支A上有任何提交,它们将被`git reset --hard B`丢失.如果分支A上有提交,那么你应该使用`git rebase`来重新定位分支.

2> Tim Henigan..:

如果分支上没有提交A,那么git reset --hard B Bram Schoenmakers给出的解决方案将起作用.

但是如果有提交是A必须保留的分支,那么以下应该做的诀窍:

    制作您的仓库的备份副本(以防万一)

    git checkout A

    git rebase -i --onto B SHA1-A^

... SHA1-A^分支的父级的提交ID 在哪里A

有关详细信息,请参见git rebase手册页.

注意:这将重写历史记录(因为rebase总是如此).如果您的A分支机构被推到公共场所,应该特别考虑.



3> Vladyslav Sa..:

我通常使用此序列并找到最简单的方法:

git checkout B
git branch -f A B

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有