PR

gitのブランチ操作に関する忘備録

git

gitのbranchが分かれば、複数人作業におけるgit操作は何とかなるはず。

ということでgitのbranchをまとめます。

はじめてgitを触る人はこちらからどうぞ。

姫野秀徳

組み込みエンジニアとしてメーカー勤務10年。
第二種電工事士、基本情報技術者、Code.org認定教師。
microbitを用いた電子工作&プログラミング教室を開校。
組み込み開発の実際を発信するyoutube活動も行う。

無料で学べる組み込み開発オンラインスクールはじめました!
https://kumicla.tatepro.com

姫野秀徳をフォローする

gitの考え方

gitはmainブランチを直接更新するのはご法度らしいです(とはいえ1人だとmainをいじるのが普通だよね)。

例えば測定部、通信部、制御部とそれぞれメンバーがいて同時に開発をする場合、それぞれ別にブランチを作って、そのブランチが完成したらmainブランチにマージすることでmainを育てていく、と。

mainが幹で、feature/measurement, feature/communication, feature/controlが枝葉としてある感じ。

けど、それをどうやってやればいいか分からないんですけど?

ということにならないよう、この記事でまとめたいと思います。

ブランチの作成

branchは下記コマンドで作成できます。

$ git branch "ブランチ名"

既存ブランチと自分の場所を確認する

どのブランチが存在するか、また自分がどこにいるか下記コマンドで分かります。

$ git branch

アスタリスク付きで緑色文字になってるのが、いま自分がいるブランチになります。

* feature/measurement
main

ブランチを切り替える

下記コマンドでブランチを切り替えることができます。

$ git checkout "ブランチ名"

例えば、

$ git checkout "main"

$ git branch
feature/measurement
* main

ブランチを新たに作成して切り替えることもできる

$ git checkout -b "ブランチ名"

とすることで新たにブランチを作成して、その作ったブランチに切り替えることもできます。

ブランチをリモートリポジトリに上げる

2つのパターンがあります。

1.ブランチがリモートリポジトリに存在する場合

$ git push -u origin

2.ブランチがリモートリポジトリに存在しない場合

$ git push --set-upstream origin ブランチ名

ex) git push --set-upstream origin feature/communication

アップストリームブランチとは、リモートに対応するブランチのことです。

コマンドでは、ブランチをリモートリポジトリにプッシュし、同時にアップストリームブランチを origin(デフォルトのリモート名)に設定しています。

mainブランチに別のブランチをマージする

$ git merge ブランチ名

mainブランチがfeature/testブランチをマージしたい場合、

$ git checkout main

でmainブランチに移動して、

$ git merge feature/test

で、マージ(結合)できます。

多人数でやると、コンフリクト(=衝突)が起こります。

結合先コード(この例でいうとmainブランチ)にて、自分の変更したコード以外の部分で違いがあると発生します。

この場合はこちら側が差分を吸収した上でマージを試みることになりますね。

マージした後はadd, commit、必要に応じてpushします。

最新情報の取得

さっきの話、コンフリクトは差分が大きいほど作業量も増えるので、今の自分がいじってるブランチのコードとリモートに上がっているコードの差分は定期的に見ておくとよいですね。

$ git fetch リモートリポジトリ名
$ git merge リモートリポジトリ名/ブランチ名

ex)
$ git fetch origin
$ git merge origin/feature/measurement

fetchでリモートリポジトリ情報を取得して、mergeで自分のコードに反映するということですね。

で、この2段階作業が面倒だからか、この処理をまとめたpullコマンドも有ります。

$ git pull リモートリポジトリ名 ブランチ名 

ex)
$ git pull origin master feature/measurement

ブランチを削除する

ローカルブランチの場合

-dオプションを付加することで削除できます。

git branch -d ブランチ名

ex)
git branch -d feature/measurement

リモートブランチの場合

–deleteオプションを付加することで削除できます。

git push origin --delete ブランチ名

ex)
git push origin --delete feature/measurement

この内容が良いと思ったら、いいね💖を押して教えてください!

組みクラ – 組み込み開発を学び、未来を創るエンジニアへ
無料で学べる!組み込み開発の基礎から応用までをマスターできるオンラインスクール「組みクラ」

組み込みエンジニアは、あらゆる産業の基盤を支える重要な職業です。
私たちタテプロは、次世代の組み込みエンジニアを育成し、業界の競争力を高めるために活動しています。
あなたも、無料で学べる「組みクラ」で、組み込み開発のスキルをしっかり身につけ、キャリアを加速させましょう!
今すぐ学び始めて、将来の自分をステップアップさせる第一歩を踏み出しませんか?

\立プロとLINEで友だちになりませんか/
立プロと友だちになる
git
シェアしていただけると嬉しいです!

コメント

タイトルとURLをコピーしました