TECH I.S.

Bitbucket からの Git プル


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

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

変更内容に追従するためのプル

プロジェクトでチームとして作業する際には、全員が最新の情報に追いつくことが重要です。

プロジェクトに取り組む際には、ローカルコピーに最新の変更を取得する必要があります。

Gitを使用すると、pullコマンドを使用してこれを行うことができます。

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

  • fetch
  • merge

それでは、fetchmerge、および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

...
...

期待通りの表示になっていますが、ローカルの masterorigin/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

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

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

Bitbucket 上の Readme.md ファイルにさらに変更を加えてみましょう。

Bitbucket Update Readme

ローカルの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の動作について詳しく見ていきます。


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

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

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

スクールの詳細