gitk
和 git log
查看提交历史记录,并尝试查看特定提交如何到达某个分支。我可以在历史记录中看到这些提交,所以我知道它们存在。我想了解的是它们是如何被合并的(它们本应该保留在自己的分支上)。这是一个非常大的项目,在特定提交和当前分支状态之间有数百个提交,所以我无法清楚地通过
gitk
中有限的 DAG 进行辨析,而且该提交会被其他分支、合并和提交消息掩盖。为此,我一直在尝试:
gitk {sha1hashIDstring}..branch_name
gitk {sha1hashIDstring}..branch_name --ancestry-path
git log {sha1hashIDstring}..branch_name --reverse
git log {sha1hashIDstring}..branch_name --merges --reverse
git log {sha1hashIDstring}..branch_name --ancestry-path --reverse
git log {sha1hashIDstring}..branch_name --ancestry-path --merges --reverse
我不理解这些结果。我只想看到包含特定提交的项目,以便清楚地了解它是如何进入相关分支的。我该如何做?
示例
我想在gitk
中查看,但如果使用git log
也可以:
Message Author Date #commit that merged branch z into current branch
Message Author Date #commit that merged branch y into branch z
Message Author Date #commit that merged branch x into branch y
Message Author Date #commit that merged {sha1hashIDstring} commit/branch a into branch x
Message Orig_Author Date #{sha1hashIDstring} original commit, on branch a
更多信息
我还没有看到任何答案,所以如果没有人回答,我会开始设置悬赏,但也许我没有正确解释问题(我乐意听取改进和澄清的建议)。
这样做的原因是我可以看到提交本身,并被告知它不应该在某个特定分支上。这是我所看到的:
Message Orig_Author Date #{sha1hashIDstring} commit
Message Orig_Author Date #Merged into branch test_dec14 (includes original commit)
...
Message Author Date # unrelated commits
Message Author Date # more unrelated commits
# Stuff happened here ??? everything I do gives me hundreds of things here
# Not all of them related to the {sha1hashIDstring} commit
# No idea how to see only the ones that are
...
Message Author Date # final commit on test_jan15 branch
有人告诉我,如果没有发布,test_dec14
中的提交不应该出现在test_jan15
中,因此{sha1hashIDstring}提交不应该出现在test_jan15
中,但它确实出现了。我想知道为什么会这样,它是如何出现的,谁放进去的。
git log sha..branch --ancestry-path --merges
- Andrew C--ancestry-path --merges
在我的代码库中提供了合理的输出。不知道为什么在你的代码库中不能。 - Andrew C