2016-12-06 3 views
0

ローカルリポジトリの現在のバージョン(How to retrieve the hash for the current commit in Git?)のコミットハッシュを取得する方法を知っています。リポジトリで最新の利用可能なバージョンのコミットハッシュを取得する方法

ローカルのreposブランチとは異なる可能性があるブランチ名が与えられていると、実際にクローンやプルを実行せずに、リモートリポジトリで最新の使用可能なバージョンの長いハッシュを取得する方法がありますか?

+0

check [this](http://stackoverflow.com/q/949314/1761003) – Gattsu

+0

@maveňThat's私はリンク先の投稿。私はそれをもう一度見直すだろうが、私はそこにこれを見なかった。 –

答えて

1

git ls-remote(またはgit remote showしかし、それはここで直接有用ではないのですが)、別のGitを連絡するgit clonegit fetchと同じGitのプロトコルを使用することができます。これらのクローンで

8d7a455ed52e2a96debc080dfc011b6bb00db5d2  HEAD 
a274e0a036ea886a31f8b216564ab1b4a3142f6c  refs/heads/maint 
8d7a455ed52e2a96debc080dfc011b6bb00db5d2  refs/heads/master 
fb549caa12ec67f9448f8f6b29b102ee5ec54c82  refs/heads/next 
4b8cb2c9d27c63c844b1d2507b8b0981adfcf397  refs/heads/pu 
595ca97928bf3cde17e40ecbbacb65cc3d053a06  refs/heads/todo 

:例えば、参照・ツー・ハッシュマッピングのリストを取得することにより開始し、フェッチgit ls-remoteは、単にそれらをプリントアウトしてから停止している間、彼らは、任意の「面白い」オブジェクトをダウンロードするために行きます。

オプションと追加の詳細については、the documentationを参照してください。 リポジトリ引数はURLにすることができます。したがって、クローンを実行する必要はありません。

1

Gitだけをローカルで使って直接行う方法がわかりません。 BitbucketやGitHubのようなツールを使用している場合、Webサイトは最新のコミットハッシュを明示的に表示します。

これをローカルに実行するオプションは、トラッキングブランチを更新するだけです。しかし、まず、追跡ブランチのコミットハッシュが何であるかを記録します。これを行うには:

git log origin/master # record the SHA-1 hash from HEAD 
git pull origin master # update the tracking branch 
# find the SHA-1 hash you want 
git update-ref refs/remotes/origin/master <original SHA-1 hash of origin/master> 

ここでのヒントは、トラッキングブランチを、開始時のポイントにリセットすることです。今、あなたはあなたが望むハッシュを持っています。

質問:このハッシュは、対応するコミットを含む追跡ブランチがない場合はどうなりますか?

+0

使用は複雑です。 gitコミットハッシュを使用してアップデートチェックを行うソフトウェア自動アップデートシステムのための短い話です。システムは、更新サーバーだけがgitにアクセスするように構成されています(クライアントデバイスは更新サーバーを経由します。つまり、サーバーはステージングエリアにコピーしてコピーし、クライアントに利用可能にします)。サーバーサイドgitプルが手動でトリガされます。私は、更新サーバーの現在のレポバージョンだけでなく、gitサーバーの最新バージョンを示すサーバー上のステータスページを構築しようとしています。 –

関連する問題