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分支并且正在处理它,这也不算太糟糕.
由于它是用于部署的分支,因此很可能就是这种情况(即没有人正在研究所述分支的克隆).