Git rebase 提交选择

标签 git

我有一个如下所示的 git 树:

enter image description here

由于我们使用审查工具,我们会挑选更改而不是 merge 它们。这给我们留下了一些逻辑上的重复项,然后我就删除了它们的分支。比如ssl_tests下面的change一个“Modification: Changing name...”在dev中也可以看到。

现在,也许这是我对 cherry pick 缺乏理解,但这些提交具有不同的哈希值,所以不同的提交对吗?尽管它们在逻辑上是相同的。

但是,当我将 ssl_tests rebase 到 dev 时,git 设法弄清楚那些精心挑选的提交是上游,然后仅 rebase 来自 ssl_tests 的“新功能:单元测试...”提交。

像往常一样,使用 git,这太棒了!这正是我想要的!不过,我的问题是,如果其他提交具有不同的哈希值,那么 git 是如何确定它不需要 rebase 的?

谢谢! 斯蒂芬

最佳答案

Git 在这里关注的不仅仅是 SHA1。它实际上是在考虑提交的内容。它看到应用提交和不应用提交产生的​​树是相同的;也就是说,如果应用于新基础,提交将为空。因此,rebase 足够聪明,知道它不需要费心包含这些提交。

关于Git rebase 提交选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8255078/

相关文章:

git - 在大型项目中使用 zend 框架和 git

git - 重新排序提交其中之一是 merge

git - 从 GitHub 上已删除的复刻中恢复作为 pull 请求发送的提交

git "reset"workdir 到 HEAD 而不触及暂存区

java - 如何在不添加Remote的情况下将提交推送到git存储库?

仅在当前树中的所有分支的 Git 日志

windows - 如何在 Windows 上安装 go-sql-driver

git ls-remote --tags : how to get date information?

Git:有两个不同的公共(public)和部署代码存储库

git - 如何在git中查看未跟踪的文件而不是未跟踪的目录