31

Gitを使用すると、たとえば、任意のリモートおよび参照からフェッチできます

git fetch <remote-url> <reference>

リモートを追加したりブランチを作成したりしなくても、指定されたコミットを利用できるようにします。

ただし、これはブランチ名やタグなどの参照に対してのみ機能し、特定のハッシュ、つまりどこにも直接参照されていないコミットに対しては機能しません。

リモートから特定のコミットをフェッチする方法はありますか?

4

4 に答える 4

13

「リモート git リポジトリから特定のコミットをプルする」を参照してください:
Git 2.5 (2015 年 7 月) では、次のことが可能になります。

git fetch --depth=1 <a/remote/repo.git> <full-lenght SHA1>
git cat-file commit $SHA1

SHA1 がリモート リポジトリのブランチ ヒントの 1 つから「到達可能」である場合は、それを取得できます。

警告:

  • ただし、構成を処理する Git 2.5 リモート リポジトリサーバーが必要です (単一のコミット フェッチを許可するには、uploadpack.allowReachableSHA1InWantその構成を に設定する必要があります)。true
  • そして、crgarridos回答に示されているように、完全な SHA1 が必要であり、ジム・ハーンコメントgit rev-parseで指摘したように、すべてのコミットを持っているわけではないため、使用できません。
于 2015-07-16T05:30:08.723 に答える
8

いいえ。マニュアルによるとgit fetch、refspecが必要であり、その最も単純な形式はrefであり、裸のSHA-1はrefではありません。つまり、コミットを実行できるようにするには、リモートでコミットに名前(ブランチ、タグ)を付ける必要がありますfetch

于 2013-01-17T00:14:02.590 に答える