チャプター ▾ 第2版

A3.5 付録C: Gitコマンド - プロジェクトの共有と更新

プロジェクトの共有と更新

Gitにはネットワークにアクセスするコマンドはあまり多くなく、ほとんどのコマンドはローカルデータベース上で動作します。作業を共有したり、他の場所から変更を取り込んだりする準備ができたときには、リモートリポジトリを扱う少数のコマンドがあります。

git fetch

git fetchコマンドはリモートリポジトリと通信し、現在のリポジトリにはないリモートリポジトリ内のすべての情報をフェッチして、ローカルデータベースに保存します。

このコマンドについては、まずリモートからのフェッチとプルで説明し、その後もリモートブランチでその使用例を示します。

また、プロジェクトへの貢献のいくつかの例でも使用しています。

プルリクエストの参照では、デフォルトのスペースの外にある単一の特定の参照をフェッチするために使用し、バンドリングではバンドルからフェッチする方法を見ています。

Refspecでは、git fetchがデフォルトとは少し異なる動作をするように、非常にカスタムなrefspecを設定します。

git pull

git pullコマンドは基本的にgit fetchコマンドとgit mergeコマンドを組み合わせたもので、Gitは指定したリモートからフェッチし、すぐに現在いるブランチにマージしようとします。

リモートからのフェッチとプルで簡単に紹介し、リモートの検査で実行した場合に何がマージされるかを確認する方法を示しています。

リベース時のリベースでは、リベースの困難を解決するためにこのコマンドを使用する方法も見ています。

リモートブランチのチェックアウトでは、URLと組み合わせて、一度限りの方法で変更を取り込むために使用する方法を示しています。

最後に、コミットの署名では、プルするコミットがGPG署名されていることを確認するために、--verify-signaturesオプションを使用できることを非常に簡単に述べています。

git push

git pushコマンドは、他のリポジトリと通信し、ローカルデータベースにあるがリモートリポジトリにはないものを計算し、その差分を他のリポジトリにプッシュするために使用されます。他のリポジトリへの書き込みアクセスが必要なため、通常は認証が必要です。

git pushコマンドについては、まずリモートへのプッシュで説明します。ここでは、ブランチをリモートリポジトリにプッシュする基本的な内容を扱います。プッシュでは、特定のブランチをプッシュすることについてさらに深く掘り下げ、トラッキングブランチでは、自動的にプッシュするようにトラッキングブランチを設定する方法を見ています。リモートブランチの削除では、git pushでサーバー上のブランチを削除するために--deleteフラグを使用します。

プロジェクトへの貢献では、複数のリモートを介してブランチの作業を共有するためにgit pushを使用するいくつかの例を見ています。

タグの共有では、作成したタグを--tagsオプションで共有する方法を見ています。

サブモジュールの変更の公開では、サブモジュールを使用する場合に非常に役立つ、スーパープロジェクトをプッシュする前にすべてのサブモジュールの作業が公開されていることを確認するために--recurse-submodulesオプションを使用します。

その他のクライアントフックでは、プッシュが許可されるべきかどうかを確認するためにプッシュが完了する前に実行するように設定できるスクリプトであるpre-pushフックについて簡単に説明しています。

最後に、Refspecでのプッシュでは、通常使用される一般的なショートカットではなく、完全なrefspecを使用してプッシュすることについて見ています。これは、共有したい作業について非常に具体的に指定するのに役立ちます。

git remote

git remoteコマンドは、リモートリポジトリの記録を管理するためのツールです。これにより、長いURLを「origin」のような短いハンドルとして保存できるため、毎回入力する必要がありません。これらを複数持つことができ、git remoteコマンドはそれらを追加、変更、削除するために使用されます。

このコマンドについては、一覧表示、追加、削除、名前変更を含め、リモートの操作で詳しく説明されています。

このコマンドは、その後のほぼすべての章でも使用されますが、常に標準のgit remote add <name> <url>形式で使用されます。

git archive

git archiveコマンドは、プロジェクトの特定のSNAPSHOTのアーカイブファイルを作成するために使用されます。

リリース準備では、プロジェクトのtarballを共有するためにgit archiveを使用します。

git submodule

git submoduleコマンドは、通常のリポジトリ内で外部リポジトリを管理するために使用されます。これは、ライブラリや他の種類の共有リソース用である可能性があります。submoduleコマンドには、これらのリソースを管理するためのいくつかのサブコマンド(addupdatesyncなど)があります。

このコマンドについては、サブモジュールで完全に説明されています。

scroll-to-top