2017-10-09 36 views
0

プロジェクトを複製せずにコマンドラインからGithub上のリポジトリのログを読むにはどうすればよいですか?言い換えればgithub:複製せずにコマンドラインからログを読み取る方法

裸のレポは私のファイルシステム上のどこかであれば、私は、ログを読むことができます:レポはGitHubの上にある場合

git -C /media/git-repos/project.git log 

は、私はそれをどのように行うのですか?

答えて

1

@MarkAdelsbergerの回答に基づいて、ここにはgithubのgitリポジトリのログを返すクイックPythonスクリプトがあります。 2つの引数、ユーザー名repo-nameが必要です。

#!/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コマンドラインは、リモートとの対話が非常に限られています。通常はfetchpush、およびpullです。 (「あまり一般的でない」リモートインタラクションがいくつかありますが、あなたが求めているようなものはありません)。しかし、ほとんどすべてがローカルで、設計によって行われます。

あなたが話すシナリオは、非常にという特殊なケースを利用しています。あなたは実際にリモートとして裸のレポと相互作用しているわけではありません。 gitにローカルレポのようにアクセスするように指示しています。実際には、となります。ちょうどcd /media/git-repos/project-gitとなり、通常はgit logを実行します。それは本当にローカルにアクセスできるからです。

しかし、あなたはギブスレポにcdできません。あなたのアクセスはgitのリモートプロトコル経由か、githubが提供するAPI経由で行います。 (同様の状況は、任意のリモートホスティングサービスに適用されます。)githubのケースでは、具体的にはWeb APIです。

希望の結果が得られるWeb APIリクエストが分かっている場合は、curlでそのリクエストをフィードできます。それはあなたができる最高のことです。 https://developer.github.com/v3/repos/commits/

関連する問題