セットアップと設定
プロジェクトの取得と作成
基本的なスナップショット
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ適用
デバッグ
メール
外部システム
サーバー管理
- 2.43.1 → 2.50.1 変更なし
-
2.43.0
2023-11-20
- 2.39.1 → 2.42.4 変更なし
-
2.39.0
2022-12-12
- 2.34.1 → 2.38.5 変更なし
-
2.34.0
2021-11-15
- 2.18.1 → 2.33.8 変更なし
-
2.18.0
2018-06-21
- 2.16.6 → 2.17.6 変更なし
-
2.15.4
2019-12-06
- 2.14.6 変更なし
-
2.13.7
2018-05-22
- 2.10.5 → 2.12.5 変更なし
-
2.9.5
2017-07-30
- 2.7.6 → 2.8.6 変更なし
-
2.6.7
2017-05-05
- 2.5.6 変更なし
-
2.4.12
2017-05-05
- 2.2.3 → 2.3.10 変更なし
-
2.1.4
2014-12-17
-
2.0.5
2014-12-17
概要
git send-pack [--mirror] [--dry-run] [--force] [--receive-pack=<git-receive-pack>] [--verbose] [--thin] [--atomic] [--[no-]signed | --signed=(true|false|if-asked)] [<host>:]<directory> (--all | <ref>…)
説明
通常は、このコマンドの上位ラッパーである git push を使用することをお勧めします。 git-push[1] を参照してください。
リモートリポジトリ(存在する可能性のある)で git-receive-pack を呼び出し、現在のリポジトリから指定された参照を送信して更新します。
オプション
- --receive-pack=<git-receive-pack>
-
リモート側の git-receive-pack プログラムへのパス。SSH経由でリモートリポジトリにプッシュする場合で、デフォルトの$PATHにあるディレクトリにプログラムがない場合に便利です。
- --exec=<git-receive-pack>
-
--receive-pack=<git-receive-pack> と同じです。
- --all
-
更新するリファレンスを明示的に指定する代わりに、ローカルに存在するすべてのヘッドを更新します。
- --stdin
-
標準入力から1行に1つずつリファレンスのリストを取得します。このオプションに加えてコマンドラインでリファレンスが指定されている場合、標準入力からのリファレンスはコマンドラインのリファレンスの後に処理されます。
このオプションと一緒に
--stateless-rpc
が指定されている場合、リファレンスのリストはパケット形式 (pkt-line) である必要があります。各リファレンスは別々のパケットである必要があり、リストはフラッシュパケットで終わる必要があります。 - --dry-run
-
実際に更新を送信することを除いて、すべてを実行します。
- --force
-
通常、コマンドは、それを上書きするために使用されるローカルリファレンスの祖先ではないリモートリファレンスの更新を拒否します。このフラグはチェックを無効にします。これは、リモートリポジトリがコミットを失う可能性があることを意味します。注意して使用してください。
- --verbose
-
詳細に実行します。
- --thin
-
ネットワークトラフィックを削減するために、パックに含まれていないオブジェクトをベースにデルタ形式でオブジェクトを記録する「thin」パックを送信します。
- --atomic
-
リファレンスの更新にアトミックトランザクションを使用します。いずれかのリファレンスの更新に失敗した場合、すべてのプッシュはリファレンスを変更せずに失敗します。
- --[no-]signed
- --signed=(true|false|if-asked)
-
受信側のリファレンスを更新するためのプッシュリクエストにGPG署名を行い、フックによるチェックやログ記録を可能にします。
false
または--no-signed
の場合、署名は試行されません。true
または--signed
の場合、サーバーが署名付きプッシュをサポートしていないとプッシュは失敗します。if-asked
に設定されている場合、サーバーが署名付きプッシュをサポートしている場合に限り署名します。gpg
--sign
の実際の呼び出しが失敗した場合もプッシュは失敗します。受信側の詳細については git-receive-pack[1] を参照してください。 - --push-option=<string>
-
指定された文字列を、サーバー側のフックで消費されるプッシュオプションとして渡します。サーバーがプッシュオプションをサポートしていない場合、エラーが発生します。詳細については、git-push[1] および githooks[5] を参照してください。
- <ホスト>
-
リポジトリをホストするリモートホスト。この部分が指定されている場合、git-receive-pack はSSH経由で呼び出されます。
- <ディレクトリ>
-
更新するリポジトリ。
- <ref>…
-
更新するリモートのリファレンス。
参照の指定
リモート側でどのリファレンスを更新するかを指定する方法は3つあります。
--all
フラグを使用すると、ローカルに存在するすべてのリファレンスがリモート側に転送されます。このフラグを使用する場合、<ref> を指定することはできません。
--all
も <ref> も指定しない場合、ローカル側とリモート側の両方に存在するヘッドが更新されます。
1つ以上の <ref> が明示的に指定されている場合 (コマンドラインまたは --stdin
を介して)、それは単一のパターンであるか、コロン ":" で区切られたそのようなパターンのペアのいずれかになります (これは、参照名にコロンを含めることができないことを意味します)。単一のパターン <name> は、単に <name>:<name> の略記です。
各パターンペアは、ソース側 (コロンの前) とデスティネーション側 (コロンの後) で構成されます。プッシュするリファレンスは、ソース側に一致するマッチを見つけることで決定され、どこにプッシュされるかはデスティネーション側を使用することで決定されます。リファレンスをマッチさせるために使用されるルールは、git rev-parse がシンボリックリファレンス名を解決するために使用するルールと同じです。git-rev-parse[1] を参照してください。
-
<src> がローカルの参照のどれか一つに正確に一致しない場合、エラーとなります。
-
<dst> が複数のリモートリファレンスに一致する場合、エラーとなります。
-
<dst> がどのリモート参照にも一致しない場合、以下のいずれかです。
-
それは "refs/" で始まる必要があります。この場合、<dst> はそのまま宛先として使用されます。
-
<src> == <dst> であり、<src> にマッチした参照がリモート参照のセットに存在してはならない。ローカルで <src> にマッチした参照が宛先の名前として使用されます。
-
--force
なしの場合、<src> リファレンスは、<dst> が存在しないか、<dst> が <src> の適切なサブセット (つまり祖先) である場合にのみリモートに保存されます。このチェックは「ファストフォワードチェック」として知られており、リモートリファレンスを誤って上書きし、そこから他の人のコミットを失うことを防ぐために実行されます。
--force
を指定すると、すべてのリファレンスに対するファストフォワードチェックが無効になります。
オプションとして、<ref> パラメータには、そのリファレンスのみのファストフォワードチェックを無効にするためにプラス + 記号を付けることができます。
GIT
git[1]スイートの一部