在git中更改分支的根目录

mic*_*149 15 tags git branch rebase reset

我正在使用git并希望更改现有分支的基础.这是由部署系统引起的,该系统将此显式分支拉入我的生产环境.在规划我的版本时,我每次想要上线时都会创建一个标签.但我的分支也有特殊的变化,所以git reset --hard v1.0不起作用.

这是一个小例子.我要这个

      C---D---E deploy
     /
A---B---F---G master
     \
      v1.0
Run Code Online (Sandbox Code Playgroud)

成为这个

                          C---D---E deploy
                         /
A---B---F---G---H---I---J---K master
     \                   \
      v1.0                v1.1
Run Code Online (Sandbox Code Playgroud)

也许git rebase正是我在寻找的,但是这些手册对我没有帮助.谢谢你的回复!

Von*_*onC 11

git rebase 应该像你说的那样,允许你改变部署的基础:

git checkout deploy
git rebase v1.1 # using the tag
(or:
 git rebase J # SHA1 of J
 or
 git rebase master~1
)
Run Code Online (Sandbox Code Playgroud)

但你最终会得到

C'---D'---E' deploy
Run Code Online (Sandbox Code Playgroud)

也就是说,deploy分支的提交部分的SHA1 被重写,如果没有人克隆所述deploy分支并且正在处理它,这也不算太糟糕.
由于它是用于部署的分支,因此很可能就是这种情况(即没有人正在研究所述分支的克隆).