我想记录推送到Git存储库的所有提交。我对所有提交感兴趣,不仅仅是我在本地检查过的分支机构。此外,我想看到已经删除的分支中发生的提交。我只需要一个类似于svn log
的命令(在Subversion中)。它有可能吗?
答案 0 :(得分:3)
我不确定你要求的是什么,但我认为这在git世界中是不可能的。
我可以克隆你的回购,并做一些提交。但我没有义务与你分享。所以有一些你永远不会知道的提交。
同样,如果我与你分享提交,我可能会在本地进行10次提交,但在将它们发送给你之前将它们压缩为1次提交。您将无法分辨出10个原始提交曾经存在过。
您可以创建一个本地分支,进行一些提交,然后删除该分支而不将它们合并回来,git gc
可能会永远销毁这些提交,因为它们不再可用。
所以有一些你永远无法知道的提交,要么因为有人提出它们但从未与你共享它们,要么是因为你制作了它们,但后来通过删除引用它们的唯一分支使它们可用于垃圾收集。 / p>
如果您想查看 所知道的所有提交内容,gitk --all
可能就是您要找的内容。它将显示所有可从本地或远程所有分支访问的提交的图形视图。同样,git log --all
将显示所有分支可以访问的所有提交的文本摘要。
如果你专门在远程仓库上寻找悬空提交,我不知道该怎么做。默认情况下,git fetch
仅提取可从分支到达的提交;您可以指定-t
以获取可从标签访问的内容;但是我don't think you can fetch the remote reflog。