変更内容に追従するためのプル
プロジェクトでチームとして作業する際には、全員が最新の情報に追いつくことが重要です。
プロジェクトに取り組む際には、ローカルコピーに最新の変更を取得する必要があります。
Gitを使用すると、pull
コマンドを使用してこれを行うことができます。
pull
は、2つの異なるコマンドの組み合わせです:
fetch
merge
それでは、fetch
、merge
、およびpull
の動作を詳しく見てみましょう。
Gitのフェッチ
fetch
は、トラッキングされたブランチ/リポジトリの変更履歴を取得します。
したがって、ローカルのGitでは、fetch
を使用してBitbucketで何が変更されたかを確認できます:
例
git fetch origin
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 2), reused 0 (delta 0)
Unpacking objects: 100% (3/3), 347 bytes | 1024 bytes/s, done.
From https://bitbucket.org/w3schools-test/hello-world
e0b6038..ec8f300 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 ec8f3003a94ee2637237077cd21624cf01646539 (origin/master)
Author: w3schools-test
Date: Thu Apr 22 12:24:58 2021 +0000
Updated README.md with a line about Bitbucket
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 2a239b7..31c7e5a 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,4 @@
Hello World repository for Git tutorial
This is an example repository for the Git tutorial on https://www.w3schools.com
-This repository is built step by step in the tutorial.
-
-It now includes steps for Bitbucket
+This repository is built step by step in the tutorial.
\ No newline at end of file
期待通りの表示です!これで安全に merge
を行うことができます。
Git マージ
merge
は現在のブランチを指定したブランチと結合します。
更新内容が期待通りであることを確認し、現在のブランチ (master
) を origin/master
とマージします:
例
git merge origin/master
Updating e0b6038..d29d69f
Fast-forward
README.md | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
状態を再度確認して最新の状態であることを確認しましょう:
例
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
を組み合わせたものです。これは、リモートリポジトリからすべての変更を取得しているブランチにプルするために使用されます。
Bitbucket 上の Readme.md ファイルにさらに変更を加えてみましょう。
ローカルのGitを更新するために pull
を使用します:
例
git pull
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 2), reused 0 (delta 0)
Unpacking objects: 100% (3/3), 379 bytes | 1024 bytes/s, done.
From https://bitbucket.org/w3schools-test/hello-world
ec8f300..9940ed4 master -> origin/master
Updating ec8f300..9940ed4
Fast-forward
README.md | 1 +
1 file changed, 1 insertion(+)
これは、ローカルのGitをリモートリポジトリから最新の状態に保つ方法です。次の章では、Bitbucket 上でのpush
の動作について詳しく見ていきます。
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。