2

我怎么知道某个特定的提交 ID 被提交到了哪个分支?简单地运行git show abc123不会显示提交到哪个分支。

4

3 回答 3

4

要找出当前存储库中的哪个分支包含给定的提交,请尝试:

git branch --contains <commit>

正如 meagar 所指出的,git 不会将分支作为一等公民进行跟踪:它们可能会被重命名、删除、重新创建;所以答案可能不像您希望的那样有意义,例如,它不一定给您提交最初创作的分支 - 而是您获得提交当前所属的(本地)分支的。

于 2013-08-22T15:54:30.517 回答
1

可以通过检查附加到合并提交的消息来判断,但是,Git 并没有明确地跟踪这一点。您不应该知道提交是在哪个分支上进行的,因为这无关紧要;树枝是临时物体,它们的重量很轻,一旦你用完它们就应该消失。此外,提交的分支通常不是它结束的分支。在 rebase、squashing 和快进合并之后,“原始”分支的想法充其量是完全没有意义的,或者在最坏的情况下完全令人困惑。

您可以担心它,并对您的日志文件执行一些取证,但更好的解决方案是接受提交的“原始”分支并不重要。您的提交消息应该传达您需要了解的有关提交的所有信息。

于 2013-08-22T15:32:47.110 回答
1

如果您不介意使用 GUI 工具:只需调用gitk --all,它会列出每次提交的所有分支。

于 2013-08-22T15:46:42.233 回答