Gitプルの説明

git pull リモートからリポジトリのローカルバージョンを更新するために使用されるGitコマンドです。

これは、Gitによるネットワークの相互作用を促す4つのコマンドの1つです。デフォルトでgit pullは、2つのことを行います。

  1. 現在のローカル作業ブランチ(現在チェックアウトされているブランチ)を更新します
  2. 他のすべてのブランチのリモートトラッキングブランチを更新します。

git pullgit fetch新しいコミットをフェッチ()し、git mergeこれらをローカルブランチにマージ()します。

このコマンドの構文は次のとおりです。

# General format git pull OPTIONS REPOSITORY REFSPEC # Pull from specific branch git pull REMOTE-NAME BRANCH-NAME

その中で:

  • OPTIONSは、--quietまたはなどのコマンドオプション--verboseです。さまざまなオプションの詳細については、Gitのドキュメントをご覧ください。
  • REPOSITORYは、リポジトリへのURLです。例://github.com/freeCodeCamp/freeCodeCamp.git
  • REFSPECは、フェッチする参照と更新するローカル参照を指定します
  • REMOTE-NAMEは、リモートリポジトリの名前です。例: origin
  • BRANCH-NAMEはブランチの名前です。例:開発します。

注意

コミットされていない変更がある場合、git pullコマンドのマージ部分は失敗し、ローカルブランチは変更されません。

したがって、リモートリポジトリから新しいコミットをプルする前に、常にブランチで変更をコミットする必要があります。

目次

  • 使用する git pull
  • 分散バージョン管理
  • git fetch + git merge
  • git pull IDEで

gitpullを使用する

git pull対応するリモートリポジトリからローカルリポジトリを更新するために使用します。例:ローカルで作業しているときにmaster、を実行git pullしてmaster、他のリモートトラッキングブランチのローカルコピーを更新し、更新します。(リモート追跡ブランチの詳細については、次のセクションを参照してください。)

しかし、その例が真実であるために心に留めておくべきいくつかのことがあります:

ローカルリポジトリには、リンクされたリモートリポジトリがあります

  • 実行して確認してください git remote -v
  • リモートが複数ある場合は、git pull十分な情報がない可能性があります。git pull originまたはを入力する必要がある場合がありgit pull upstreamます。

現在チェックアウトしているブランチには、対応するリモートトラッキングブランチがあります

  • を実行して確認してくださいgit status。リモートトラッキングブランチがない場合、Gitはから情報を取得する場所を知りません。

分散バージョン管理

Gitは分散バージョン管理システム(DVCS)です。DVCSを使用すると、開発者は別々の環境で同じファイルを同時に操作できます。コードを共有リモートリポジトリにプッシュした後、他の開発者は変更されたコードをプルできます。

Gitでのネットワークの相互作用

Gitでネットワークの相互作用を促すコマンドは4つだけです。ローカルリポジトリは、情報の要求があるまで、リモートリポジトリで行われた変更を認識しません。また、リモートリポジトリは、コミットがプッシュされるまでローカルの変更を認識しません。

4つのネットワークコマンドは次のとおりです。

  • git clone
  • git fetch
  • git pull
  • git push

DVCSのブランチ

Gitを使用していると、同じコードのコピーがいたるところに浮かんでいるように感じることがあります。各ブランチには、同じファイルの異なるバージョンがあります。そして、すべての開発者のコ​​ンピューターとリモートにある同じブランチの異なるコピー。これを追跡するために、Gitはリモート追跡ブランチと呼ばれるものを使用します

git branch --allGitリポジトリ内で実行すると、リモートトラッキングブランチが赤で表示されます。これらは、リモートに表示されるコードの読み取り専用コピーです。(ローカルに情報をもたらした最後のネットワークインタラクションはいつでしたか?この情報が最後に更新されたのはいつか覚えておいてください。リモートトラッキングブランチの情報は、そのインタラクションからの情報を反映しています。)

リモート追跡ブランチは、ネットワークの相互作用なしに、いくつかの枝の上のGitで作業することができます。git pullまたはgit fetchコマンドを実行するたびに、リモートトラッキングブランチを更新します。

gitフェッチとgitマージ

git pullgit fetch+に等しい組み合わせコマンドgit mergeです。

git fetch

単独で、git fetchローカルリポジトリ内のすべてのリモートトラッキングブランチを更新します。変更は実際にはどのローカル作業ブランチにも反映されません。

gitマージ

引数なしでgit merge、対応するリモート追跡ブランチをローカル作業ブランチにマージします。

git pull

git fetchリモート追跡ブランチを更新します。git merge現在のブランチを対応するリモートトラッキングブランチで更新します。を使用するとgit pull、これらの更新の両方の部分を取得できます。ただし、これは、featureブランチにチェックアウトして実行git pullした場合、にチェックアウトしたときにmaster、新しい更新が含まれないことを意味します。新しい変更がある可能性のある別のブランチにチェックアウトするときはいつでも、を実行することをお勧めしgit pullます。

git pull in IDE

他のIDESの一般的な言語には、単語が含まれていない場合がありますpull。単語を探しても表示されgit pullない場合は、sync代わりに単語を探してください。

リモートPR(プルリクエスト)をローカルリポジトリにフェッチする

レビューなどの目的で、リモートのPRをローカルリポジトリにフェッチする必要があります。git fetchこれを実現するには、次のコマンドを使用できます。

git fetch origin pull/ID/head:BRANCHNAME

IDはプルリクエストIDであり、BRANCHNAMEは作成するブランチの名前です。ブランチが作成されたら、そのブランチgit checkoutに切り替えるために使用できます。

guide.freecodecamp.orgのgitに関するその他のリソース

  • Gitマージ
  • Gitチェックアウト
  • Gitコミット
  • Gitスタッシュ
  • Gitブランチ