在远程分支上运行`git log`

MRo*_*lin 5 git github

我想要git loggit存储库的输出,但我不想克隆整个存储库.

即我想要在语义上像下面这样的东西

git log git@github.com:username/reponame.git

如果有办法做到这一点,我也想要同样的 git whatchanged

如果github为此提供了一个简单的解决方案,我愿意将自己限制为只在github上托管的git存储库.

and*_*oon 7

您应该获取远程分支然后与之交互。git fetch会将远程分支拉入您本地存储库的 FETCH_HEAD,而不是您的工作目录。

git log FETCH_HEAD --decorate=full 将让您看到 HEAD 与 refs/origin/HEAD 相比的位置,后者是远程分支。

git whatchanged FETCH_HEAD --decorate=full 与上面相同,但也显示了已更改的文件。

git diff HEAD FETCH_HEAD 您的存储库的 HEAD 和您刚刚获取的远程分支的 HEAD 之间的差异

git diff --stat HEAD FETCH_HEAD 更改的摘要预览,就像您在合并期间和 git pull 底部看到的一样。

请注意,如果您确实希望引入获取的更改,只需执行git merge FETCH_HEAD. (当您git pull本质上只是进行提取然后进行合并时)


Lil*_*ard 1

我认为你的解决方案就是查看 github.com 网站上的历史记录。如果您需要git log从命令行工作,那么您需要自己的存储库克隆。

理论上,您可以编写一个命令行工具来从 github 的 API 中提取提交信息,但这将仅限于仅显示提交消息/元数据,而不是实际的差异。