相关疑难解决方法(0)

Git rebase - 在fork-point模式下提交select

阅读git rebasegit merge-base人文档:

在使用git checkout -b topic origin/master创建的主题分支之后,远程跟踪分支origin/master的历史记录可能已经倒带和重建,从而导致了这种形状的历史记录:

                        o---B1
                       /
       ---o---o---B2--o---o---o---B (origin/master)
               \
                B3
                 \
                  Derived (topic)
Run Code Online (Sandbox Code Playgroud)

origin/master用于指向提交B3,B2,B1,现在它指向B,当origin/master位于B3时,您的主题分支在它上面启动.此模式使用origin/master的reflog来查找B3作为分叉点,以便可以通过以下方式在更新的origin/master之上重新定位主题:

$ fork_point=$(git merge-base --fork-point origin/master topic)
$ git rebase --onto origin/master $fork_point topic
Run Code Online (Sandbox Code Playgroud)

$fork_point将(如果我理解正确的话)是提交对象B3,因此提交B3..topic将被重新绑定到origin/master分支.

Q1为什么省略B3提交有用?topic分支的提交建立在B3提交之上,因此省略它意味着它的修改将在origin/master分支的故事中丢失.衍合的B3提交topic分支会导致一个更清洁的历史,是不是?

Q2有人可以链接/简要描述--fork-pointgit工作流中该选项的实际用例吗?

git version-control github

9
推荐指数
1
解决办法
1093
查看次数

标签 统计

git ×1

github ×1

version-control ×1