我想要git存储库的git log
输出,但我不想克隆整个存储库。
即。我想要一些语义上的东西,如下面的
git log git@github.com:username/reponame.git
如果有办法做到这一点,我也希望git whatchanged
如果github为此提供了一个简单的解决方案,我愿意将自己限制为只在github上托管的git存储库。
答案 0 :(得分:3)
你可以做一个浅层克隆,如果你只需要最近的历史记录,这将限制你需要获取的东西数量:
git clone --depth 100 ...
答案 1 :(得分:3)
您应该获取远程分支,然后与之交互。 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
基本上只是进行获取然后合并时)
答案 2 :(得分:2)
我发现有两种方法可以使用GitHub:
答案 3 :(得分:0)
我认为您的解决方案是在github.com网站上查看历史记录。如果您需要git log
从命令行工作,那么您需要自己的存储库克隆。
理论上你可以编写一个命令行工具来从github的API中提取提交信息,但这仅限于显示提交消息/元数据,而不是实际的差异。
答案 4 :(得分:0)
Unix方式是拥有一个shell帐户:
ssh user@otherserver cd reponame.git '&&' git log
和
ssh user@otherserver cd reponame.git '&&' git whatchanged
此方法的优点是可以在远程服务器上运行您想要的任何内容。我怀疑这对github有效。