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