首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >git,rebase v交互式rebase,git目录结构

git,rebase v交互式rebase,git目录结构
EN

Stack Overflow用户
提问于 2018-10-17 22:57:29
回答 1查看 62关注 0票数 0

当我执行git rebase <base-commit>时,我看到目录.git/rebase-apply被创建,其中包含文件ontoorig-headoriginal-commit,分别引用了<base-commit>head和正在应用的当前提交。

当我执行git rebase -i <base-commit>时,我看到的目录是.git/rebase-merge,其中包含文件ontoorig-headstopped-sha,其中stopped-sha似乎等同于original-commit

我的问题是,为什么交互式和非交互式rebase之间的文件和目录命名存在差异?我对这些文件的理解正确吗?

EN

回答 1

Stack Overflow用户

发布于 2018-10-17 23:55:29

您已经遇到了git format-patch | git am样式rebase和git cherry-pick样式rebase之间的区别。作为jthill noted in a comment,对于大多数用户来说,这些并不意味着在大多数情况下是不同的。它们最初被分成两个不同的后端,拼写为git-rebase--amgit-rebase--interactive。(它们仍然是,但这种区别正在减弱。)

两者之间有一个重要的区别,那就是文件重命名检测。由于cherry-pick rebase从字面上使用了git cherry-pick机制,该机制使用了底层的合并机制,因此启用了重命名检测。因为format-patch rebase不会,所以它不会。重命名检测很慢,所以如果没有重命名,有时格式补丁的变化会更快。

您可以通过向任何rebase添加-m-s <strategy>-X <extended-strategy-option>参数,强制git rebase使用樱桃挑选模式,而无需转到交互式rebase。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52857890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档