2016-11-03 12 views
2

私はローカルレポを持っていますが、このレポにはリモートがあります。リモートが裸のレポジトリではないと仮定して、リモートでがチェックされている(SHA番号による)コミットがであることを知りたい。Git:リモートでチェックアウトされているコミットを確認します。

明確化:ローカルリポジトリのブランチやその他のブランチを追跡することとは関係ありません。実際に私のローカルリポジトリが裸のリポジトリであっても動作するメソッドが必要です。私のリモートがssh://whatever/fooであると想像してください。cd /foogit rev-parse HEADを実行しているサーバwhateverにSSHingをインストールしたいとします。

私はリモートにSSHアクセスすることを保証できないため、上記の例を直接実行したくありません。私は関係なく、私は(任意のレポ参照が起源のために尽くします応答がない支店名SHA、

+1

jthillの答えを使用してください。副次的なことは、すべてのリポジトリには「HEAD」が必要なので、これは裸のレポでも機能します。 ( 'HEAD'がまだ生まれていないブランチを指しているなら、あなたはこのように見えるか、実際には見ることができませんが、その場合は答えはありません。)別の言い方をすると取得したハッシュIDは、「現在のコミット」と同じくらい「チェックアウトされたコミット」ではなく、つまり、まだ裸のリポジトリ内の何かを意味しています。 – torek

答えて

1
git ls-remote origin HEAD 

になりたいリモート

のタイプの作品方法をしたい、あなたは、URLを使用することができますまたはパス)

+0

何らかの理由で、私は複数のエントリを取得しています。どのように 'HEAD'を取得するのですか? https://gist.github.com/cool-RR/27b9825165791e4ec536f89af70c143a –

+0

これはパターン一致です、 '| awk '{$ 2 ==" HEAD "}''リモートトラッキングヘッドを取り除きます。 – jthill

+0

ええ、私もPythonで似たようなパターンマッチをしましたが、これらのことがいつ失敗するか分からないので、これを行う必要はありません。テキスト解析をすることなく、Gitから純粋な答えを得る方法があればいいと思います。あなたが方法を知っているなら、私に知らせてください。 –

関連する問題