2017-10-09 61 views

回答

1

基于@MarkAdelsberger答案,这里是一个快速的python脚本,它返回github上的git存储库日志。它期望两个参数,用户名repo名称

#!/usr/bin/python 
# github_log.py 
import urllib2, json, sys 

json_str = urllib2.urlopen("https://api.github.com/repos/{}/{}/commits" 
     .format(sys.argv[1], sys.argv[2])).read() 
commits = json.loads(json_str) 

for c in commits: 
    print c['sha'][0:8],c['commit']['message'].split('\n')[0] 

./github_log.py microsoft vscode 

回报:

a4ae8375 fix decorations service test 
45a71083 :lipstick: 
9613370d update title area faster when opening a new group 
42e1d19a composite bar polish css classes 
8f4e125a Fix compilation errors 
3170a7f5 Do not overload getConfiguration for sending it to extension host. Use getConfigurationData 
f704a6c7 composite part: move pin/unpin/mode to compositePart 
5276a4fc deco - proper explorer update on config change 
2

一般来说,你不能。但取决于究竟是你想要什么,也许你可以做出某种工作。

git命令行提供与遥控器的非常有限的交互。您通常只需要fetch,pushpull。 (有一些“不太常见”的远程交互,但没有一个像你所问的那样)。但几乎所有事情都是通过设计在本地完成的。

您所谈论的-C场景正在利用非常特殊的情况。你实际上并没有将你的裸回购作为一个遥控器进行交互;你告诉Git像本地回购一样访问它。实际上,您可能只是cd /media/git-repos/project-git,然后正常运行git log;因为它确实是本地可访问的。

但是你不能cd到github回购;你的访问是通过git的远程协议,或者通过github提供的API。 (类似的情况将适用于任何远程托管服务。)在github的情况下,具体来说,这些都是web API。

因此,如果您知道提供所需结果的网络API请求,则可以通过curl提供该请求。这是关于你能做的最好的事情。您可以从commits API调用中获得所需信息,这里记录:https://developer.github.com/v3/repos/commits/

相关问题