TECH I.S.

GitHub からの Git プル


プラットフォームを変更します:

Shift focus to GitHubGitHubShift focus to BitbucketビットバケットShift focus to GitLabGitLab

変更に最新情報を保つためのPull

プロジェクトのチームで作業する際には、みんなが最新の情報を把握しておくことが重要です。

プロジェクトを開始するたびに、ローカルコピーに最新の変更を取得するべきです。

Gitを使用すると、pullコマンドでそれができます。

pullは、2つの異なるコマンドの組み合わせです:

  • fetch
  • merge

では、fetchmerge、およびpullの動作を詳しく見てみましょう。


Git Fetch

fetchは、追跡しているブランチ/リポジトリの変更履歴を取得します。

したがって、ローカルのGitでは、fetchを使用してGitHubで何が変更されたかを確認します:

git fetch origin
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 733 bytes | 3.00 KiB/s, done.
From https://github.com/w3schools-test/hello-world
   e0b6038..d29d69f  master     -> origin/master

最新の変更を取得したので、statusを確認できます:

git status
On branch master
Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
  (use "git pull" to update your local branch)

nothing to commit, working tree clean

私たちはorigin/masterから1つのcommit遅れています。それは更新されたREADME.mdであるはずですが、logを表示してダブルチェックしましょう:

git log origin/master
commit d29d69ffe2ee9e6df6fa0d313bb0592b50f3b853 (origin/master)
Author: w3schools-test <77673807+w3schools-test@users.noreply.github.com>
Date:   Fri Mar 26 14:59:14 2021 +0100

    Updated README.md with a line about GitHub

commit e0b6038b1345e50aca8885d8fd322fc0e5765c3b (HEAD -> master)
Merge: dfa79db 1f1584e
Author: w3schools-test
Date:   Fri Mar 26 12:42:56 2021 +0100

    merged with hello-world-images after fixing conflicts

...
...

それは予想通りのように見えますが、私たちのローカルの masterorigin/master の違いを表示して検証することもできます:

git diff origin/master
diff --git a/README.md b/README.md
index 23a0122..a980c39 100644
--- a/README.md
+++ b/README.mds
@@ -2,6 +2,4 @@
    Hello World repository for Git tutorial
    This is an example repository for the Git tutoial on https://www.w3schools.com

-This repository is built step by step in the tutorial.
-
-It now includes steps for GitHub
+This repository is built step by step in the tutorial.
\ No newline at end of file

それは予想通りのように見えます!これで安全に merge することができます。



Git Merge

merge は現在のブランチを指定したブランチと結合します。

アップデートが予想通りであることを確認しましたので、現在のブランチ (master) を origin/master とマージすることができます:

git merge origin/master
Updating e0b6038..d29d69f
Fast-forward
    README.md | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

最新の状態を確認するために status を再度確認してください:

git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

ここです!ローカルのGitが最新です!


Git Pull

しかし、すべての手順を経ずにローカルリポジトリを更新したい場合はどうすればいいでしょうか?

pullfetchmergeの組み合わせです。これは、リモートリポジトリからすべての変更を取得して作業中のブランチにマージするために使用されます。

GitHub上のReadme.mdファイルに別の変更を加えます。

GitHubのReadme更新

次のコードを使用してローカルGitを更新します:

git pull origin
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 794 bytes | 1024 bytes/s, done.
From https://github.com/w3schools-test/hello-world
   a7cdd4b..ab6b4ed  master       -> origin/master
Updating a7cdd4b..ab6b4ed
Fast-forward
 README.md | 2 ++
 1 file changed, 2 insertions(+)

これがリモートリポジトリからのローカルGitの最新情報を取得する方法です。次の章では、GitHub上でpushがどのように機能するかを詳しく見ていきます。


プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細