【发布时间】:2014-12-25 13:11:07
【问题描述】:
在我的 master 分支中,有一个错误的提交在某个时候被合并了。有没有可能找出它来自哪个分支?
【问题讨论】:
标签: git git-branch
在我的 master 分支中,有一个错误的提交在某个时候被合并了。有没有可能找出它来自哪个分支?
【问题讨论】:
标签: git git-branch
是和不是。提交携带祖先历史,但它们实际上并不携带分支信息。此类信息是计算的,而不是作为一流数据存储或传递的。你可能会发现 git-bisect 是一个更好的选择。
您可以使用git branch --contains <commit> 查找包含提交的分支。请参阅https://stackoverflow.com/a/1419637/1301972 以更彻底地处理各种选项,以及在某些情况下可能使用 git-cherry 的一些讨论。
但是,如果提交是从已删除的分支中合并的,则识别原始源分支的能力将仅限于存储在非快进合并提交中的数据。因此,您的里程会有所不同。
一般来说,如果你有一个错误的提交,你会想看看git-bisect 作为一种隔离有问题的提交的方法。这将允许您对好的和坏的修订进行二进制搜索,并且不依赖于您当前存储库中可能无法访问的源分支信息。
【讨论】:
如果您或多或少知道它发生的时间和地点,这是一个简洁的可视化命令:
git log --graph --decorate --oneline --all
如果有很多历史并且不知道从哪里开始查找,您的问题之前已在 Finding what branch a commit came from 中得到解答。
【讨论】: