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