13章パッチ
Gitは、プッシュモデルとプルモデルの両方を使って別のリポジトリに開発の成果を直接すぐに送れるようになっている。転送は、「11.1.6 リモートリポジトリの参照」で説明したさまざまなサポートプロトコルを使って行う。
簡単に復習しておこう。Gitはリポジトリ間でデータを交換するために独自の転送プロトコルを実装している。Gitプロトコルは、時間と空間の節約のためにちょっとしたハンドシェークを実行してソースリポジトリにあってターゲットにないコミットが何かを調べてから、圧縮されたバイナリ形式のコミットを転送する。受信側のリポジトリは、自分のローカル履歴に新しいコミットを組み込み、コミットグラフを増補し、必要に応じてブランチとタグを更新する。
リポジトリ間での開発成果の交換にはHTTPも使える。HTTPはGitのネーティブプロトコルほど効率はよくないが、コミットのやり取りは同じようにできる。どちらのプロトコルでも、転送されたコミットは、ソース、デスティネーションの両方のリポジトリで同じになることが保証されている。
最近のGitホスティングプラットフォームでリポジトリの複数の作業コピーから中央の権威リポジトリにシステマティックにコード変更を組み込む操作は、HTTPを使ったものとほとんど同じである。新しいワークフローと機能は、プッシュアンドプルモデルの基底レイヤーの上に組み立てられている。これらは、Gitホスティングプラットフォーム次第でプルリクエスト(pull request)とかマージリクエスト(merge request)と呼ばれているもので、読者もおそらくご存じだろう†1。プルリクエストについては、「18章 GitとGitHub」で詳しく説明する。
[†1] 監訳注:マージリクエストはGitLabで使われている用語である。 ...
Get 実用 Git 第3版 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.