我应该从Git的另一个分支 checkout ,如何修复?

yhived7q  于 2022-11-20  发布在  Git
关注(0)|答案(2)|浏览(239)

我从master创建了一个特性分支,但我应该从develop分支创建它,我该如何修复它?
为了形象化,我做了以下工作:

D---E---F develop
         /
A---B---C master
         \
          G---H feature

但我应该这样做:

G---H feature
                   /
          D---E---F develop
         /
A---B---C master

我没有尝试过任何方法,我不知道该如何处理

8e2ybdfx

8e2ybdfx1#

这可以通过在develop上重新创建feature的所有提交来完成。可以执行此操作的命令是git rebase

git rebase --onto develop master feature
  • 执行master的信头认可(不含)与feature的信头认可(含)之间的所有认可
  • develop分支上重新创建它们

请注意,重新创建的提交独立于旧的提交,它们将被分配一个新的提交ID/哈希。如果历史记录已经与其他人共享,除非绝对必要,否则不应更改。重写的历史记录也需要强制推送,因为远程服务器上的引用不能被快进。
要获得develop的更改而不重写历史,只需使用git merge将两个历史放在一起:

git checkout feature
git merge develop
iyr7buue

iyr7buue2#

这是一个使用git rebase的教科书示例,假设您还没有刷feature

git checkout feature
git rebase develop

相关问题