変更に最新情報を保つためのPull
プロジェクトのチームで作業する際には、みんなが最新の情報を把握しておくことが重要です。
プロジェクトを開始するたびに、ローカルコピーに最新の変更を取得するべきです。
Gitを使用すると、pull
コマンドでそれができます。
pull
は、2つの異なるコマンドの組み合わせです:
fetch
merge
では、fetch
、merge
、および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
...
...
それは予想通りのように見えますが、私たちのローカルの master
と
origin/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
しかし、すべての手順を経ずにローカルリポジトリを更新したい場合はどうすればいいでしょうか?
pull
はfetch
とmerge
の組み合わせです。これは、リモートリポジトリからすべての変更を取得して作業中のブランチにマージするために使用されます。
GitHub上のReadme.mdファイルに別の変更を加えます。
次のコードを使用してローカル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
がどのように機能するかを詳しく見ていきます。
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。