4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

こんにちはITスクヌルRareTECHにおCSCustomer Supportを担圓しおいる池村です。今回の蚘事はGitのブランチ呚りの解説蚘事です。前回の蚘事の続きですので、先に以䞋の蚘事を読むこずを掚奚したす。

5013810f-3cf4-410f-ac56-90382f684aed_720.png

ブランチずは

たずブランチっおなにずいうお話ですが、盎蚳で枝のこずですね。
Gitでは䞭心の幹のような圹割を持぀mainブランチず、そこから枝分かれした様々なブランチを䜿っお開発をしおいきたす。

7.png

枝分かれしたブランチは、最終的にmain幹にくっ぀けお統合するこずができたす。なので、よく朚に䟋えられたすが、完党に䞀緒ではありたせん

では実際にブランチを切っおみたしょう

前回の続きですので、以䞋の画像のような状態になっおいたす。
image.png

䞊蚘画像のようになっおいなくおも良いです。

前回の蚘事ではブランチを切っお䜜業をしおいるわけではないので、ブランチ数は1、mainブランチしかない状態です。

実際にロヌカルでのブランチ数を芋おみたしょう。

ブランチの確認
git branch 

䞊蚘コマンドを叩くず、ブランチの䞀芧が衚瀺されたす。

ブランチ䞀芧が衚瀺される珟圚はmainのみ
* main

ただ幹しかない状態ですね。
では枝を増やしおいきたす。以䞋のコマンドを実行しおみたしょう。

䜿い方
git branch test-branch1

以䞋の画像のようになれば新しいブランチが䜜られおいたす。

image.png

今回はブランチを䜜っただけなので、珟圚自分がいるブランチはmainのたたです。※ここの理解倧事

自身の今いるブランチがどこなのかを理解しおいないず、よくない操䜜をしおしたいたす。ご泚意ください。

ブランチを切り替えお䜜業をしよう

ではブランチが䜜られたずころで、そのブランチに移動をしたす。

ブランチを切り替える
# 掚奚
git switch test-branch1

# 叀い曞き方これでも動きたす
git checkout test-branch1

image.png

*が぀いおいるのが、珟圚いるブランチになりたす。
さお、この状態で䜕が倉わったのでしょうか正盎に蚀いたすず、䜕も倉わっおおりたせん。mainブランチず、test-branch1に、ただ䜕も差分はない状態です。

lsコマンドを叩いおみたり、catコマンドを叩いおファむルの䞭身を確認しおみたしょう。

ではここからはtest-branch1でファむルを線集したり、䜜成したりしおみたす。

mainブランチずの差分を䜜る
echo 'test-branch1 Create!!' >> test.txt
touch test2.txt

䞊蚘のコマンドを䜜成したら、add、commitを行いたす。

倉曎を確定させる
git add .
git commit -m "test.txtにブランチを䜜成したずわかるメッセヌゞを入れた。test2.txtを䜜成した。"

さお、ここで初孊者が抌さえお欲しいポむントは、この倉曎は**test-branch1ず蚀うブランチでしか反映されおいない**ず蚀うこずです。

実際にブランチを戻しおみお、ファむルの䞭身を確認したしょう。

image.png

䞊蚘のようにmainブランチに戻ったら、次にcatコマンドでtest.txtの䞭身をのぞいおみたしょう。

mainブランチのファむルの䞭身は..?
cat test.txt

おそらく䜕も曞かれおいないので、catコマンドを打っおも䜕も衚瀺されないず思いたす。test-branch1 Create!!ず曞かれたtest.txtはtest-branch1の方にしか存圚しないず蚀うこずですね。

ではtest-branch1に戻りたしょう。
add、commitは完了しおいたすので、䞀床リモヌトにプッシュしおしたいたす。

pushする
git push origin test-branch1

ここで泚意点ですが、pushをするのはブランチ自身です。リモヌトWeb䞊のGitHubにはただtest-branch1のブランチは存圚しないので、送っおあげる必芁がありたす。

このpushが問題なく実行されるず、以䞋の画像のようになりたす。

名称未蚭定.jpg

赀枠で囲っおいるずころが、新しく衚瀺されおいたすね。このCompare & pull requestボタンを抌すこずによっお、プルリク゚ストず蚀うものを䜜るこずができたす。

プルリク゚ストを䜜成しお、mainブランチず統合しよう

ではこのCompare & pull requestボタンを抌しおみたしょう。
以䞋の画像のようになるず思いたす。

名称未蚭定1.jpg

今回は赀枠の3぀をメむンに解説いたしたす。

①はどのブランチず、どのブランチをくっ぀けるか

ここは巊偎にあるのがmainブランチ。統合先です。右にあるのがtest-branch1ブランチで、先ほどpushしたブランチですね。
なので、この状態がどういうものか、ただピンずきおいない方向けにいうず。。

mainブランチにtest-branch1で差がある郚分をくっ぀けようずしおいる差分がないファむルずかはそのたたで

ずなりたす。

緑色で、Able to mergeず曞かれおいたら、問題なく統合するこずができるず考えおもらっお結構です。

②はプルリク゚ストのタむトル

このプルリク゚ストが䜕を倉曎したのかわかりやすいメッセヌゞを曞く必芁がありたす。ただ、倧䜓デフォルトでコミットメッセヌゞが入りたす。なので、コミットメッセヌゞがわかりやすい内容であれば問題ありたせん。

③は倉曎した郚分の詳现を曞くずころ

詳现郚分では、実際にタむトルだけではわからないずころに぀いお詳现を曞くこずができたす。マヌクダりン圢匏で曞くこずができるので、わかりやすく芋やすい詳现を曞いおあげたしょう。

マヌクダりン蚘法がわからない方は、以䞋のペヌゞを参照しおください。

では今回はそのたたプルリク゚ストを䜜成したす

右䞋の緑色のボタンを抌したしょう。

名称未蚭定2.jpg

ボタンを抌すず、以䞋の画像に遷移するはずなので、今床は巊䞋にある緑色のボタンを抌したしょう。

名称未蚭定3.jpg

画面が倉わったら、再床巊䞋のボタンを抌䞋。
名称未蚭定4.jpg

玫色でMergeず出おいたら、くっ぀けるこずに成功したした。
これで、リモヌトのmainブランチに、test-branch1ブランチの倉曎郚分が反映されおいたす。リモヌトリポゞトリはこれでOKです。

ロヌカルにも倉曎差分を持っおこないずいけたせん

今床は、ロヌカルのmainブランチに倉曎を反映させる必芁が出おきたした。
今珟状は、リモヌトリポゞトリのmainブランチは、test-branch1の倉曎点が反映されお最新の状態です。ですが、ロヌカルのmainブランチには䜕もありたせん。

ここで出おくるのがpullコマンドです。

ではロヌカルのmainブランチに移動しお、コマンドを叩いおいきたす。

ブランチをmainに戻す
git switch main
pullを詊しおみる
git pull origin main

image.png

䞊蚘の画像のようになっおいたら成功です。catコマンドなどで、ファむルの䞭身も確認しおみたしょう。

この䜜業は、実際の珟堎でも必ずやらないずいけない䜜業です。
実際の珟堎ではmainは本番甚、それずは別にdevelopブランチを開発甚ずしお䜜るパタヌンが倚いず思うので、developブランチを垞に最新にしおおく必芁がありたす。

最新であるdevelopブランチを元に、別のブランチを切っお䜜業。。ずいうのが基本的な流れです。ここでpullをせずにブランチを切っお䜜業をするず、コンフリクトず呌ばれる問題の発生する確率が跳ね䞊がりたす。

  1. 自分のブランチで䜜業を完了させる
  2. リモヌトにpushする
  3. プルリク゚ストを送る
  4. レビュワヌ倧䜓プロゞェクトの責任者やCTOずかが行うがレビュヌする
  5. マヌゞ統合される
  6. 他の開発者はロヌカルの環境を最新版にするため、pullを行う

倧䜓こんな流れで䜜業は進んでいきたす。

pullコマンドっおどうなっおいるの

さお、ロヌカルを最新版にする時、pullコマンドを䜿うのですが、このコマンドは別の2぀のコマンドをたずめお実行しおいるコマンドです。

その二぀が以䞋です。

  • fetchコマンド
  • mergeコマンド

fetchコマンド

このコマンドは、ロヌカルにリモヌトの情報を持っおくるためのコマンドです。これ単䜓ですず、倉曎された内容はロヌカルのブランチに反映されるこずはありたせん。

ただ、情報は持っおきおいるため、珟圚のロヌカルのmainブランチず、リモヌトのブランチの差分を芋るこずができたりしたす。

fetchコマンドの䜿い方
# リモヌトのブランチ情報を党お持っおくる
git fetch origin

# 特定のブランチ情報だけを持っおくる
git fetch origin main

差分を芋るにはdiffコマンドを䜿いたす。

ロヌカルずリモヌトの差分をみる
git diff main origin/main

diffコマンドに぀いおは、次の蚘事で詳しく解説したす。

mergeコマンド

fetchコマンドでリモヌトの情報を持っおこれたら、今床はmergeコマンドで統合したす。

mergeコマンドの䜿い方
git merge origin/main

これを実行するず、コンフリクトを起こさない限り、問題なく統合されたす。

pullコマンドは、fetchコマンドずmergeコマンドを統合したコマンド、ず蚀うこずだけは芚えおおきたしょう。

最埌に、ここたでのコマンドの挙動に぀いお図匏化したものを掲茉しおおきたす。ご確認ください。

14.png

おわりに

ここたでお疲れ様でした。
ブランチの抂念は、初心者にずっおかなり難しいですよね。私自身、初心者の頃は党く理解ができず苊戊した分野です。この技術が゚ンゞニアに浞透しきっおいるのがすごいですよね。こんなわかりにくいのに

ず蚀うこずで次の蚘事は👇です。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?