LoginSignup
0
0

More than 3 years have passed since last update.

git clone 前にリモート先の HEAD を取得して確認したい

Last updated at Posted at 2020-07-01

git clone を実行する前に、リモート先(リポジトリ URL 先)の HEAD(現在の最新コミット・ハッシュ値)を取得したい。

「git clone リモート先の HEAD 取得 確認」でググってもドンピシャのタイトルの記事がなかったので、自分の備忘録のググラビリテとして。

TL; DR

gitls-remote コマンドで、リモート先の諸情報を得られます。例えば、ヘッダー情報は --heads オプション。

ロング・オプション
git ls-remote --heads [ リポジトリのURL ]
ショート・オプション
git ls-remote -h [ リポジトリのURL ]
# URLが指定されていない場合はヘルプ表示になるので注意
使用例
$ git ls-remote --heads https://github.com/KEINOS/TPL-PHP-HelloWorld.git
b05c14a0ee5651990eec41e6bd397a19726d9440        refs/heads/master

TS; DR

Travis CI/Circle CI/GitHub Actions といった CI の実行処理で、いくつかのリポジトリを git clone する必要がありました。

ローカルではなく、CI の処理上で各々のリポジトリを clone し、必要なデータをコピー&マージしてからデプロイ(リリース)する必要があったからです。特に cron などでスケジュール実行される自動化されたデプロイです。

しかし、各々のリポジトリのサイズが大きいため、対象のリポジトリに変更があった場合のみ clone するように限定したいのです。そのため、最終コミットのハッシュ値(HEAD)を比較するのが合理的です。

git pull など clone 済みの場合のヘッダを確認する記事は多いのですが、git clone 前にヘッダを取得する記事がなかなか見つからず。git の公式ドキュメントを読みあさってたらドンピシャの情報がありました。

NAME
git-ls-remote - List references in a remote repository
(git-ls-remote - リモートリポジトリの参照情報を表示する)

SIMPSONS

構文
git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]
              [-q | --quiet] [--exit-code] [--get-url] [--sort=<key> ]
              [--symref] [<repository>[<refs>…​] ]

DESCRIPTION
Displays references available in a remote repository along with the associated commit IDs.
(関連するコミットIDとともに、リモートリポジトリで利用可能な参照情報を表示します)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0