0
0

More than 1 year has passed since last update.

Gitのコマンド一覧(2) - branch, checkout, remote-

Last updated at Posted at 2021-11-07

概要

Gitのコマンド一覧(1)では、ローカルリポジトリを作成するgit initから、ローカルリポジトリに反映された変更点をリモートリポジトリへ反映させるgit pushまでを記した。本記事では、ブランチとは何かから説明をし、ブランチに関するコマンドをまとめ、それに付随するoriginやローカルやリモートについて説明する。(rebase等に関してはGitのコマンド一覧(3)を参照すること)

主に使っているコマンド

  • init
  • add
  • commit
  • push
  • clone
  • status
  • log
  • reflog
  • branch
  • checkout
  • remote
  • fetch
  • merge
  • pull
  • rebase
  • cherry-pick
  • reset
  • rm

ブランチの考え方

Gitを扱う上で重要になってくるのがブランチという考え方である。例えば、多人数で一つのシステムを開発している際に、ブランチを切らないと

clone

git clone [http]

リモートリポジトリをローカルに複製するために用いるコマンドである。(リモートとローカルの連携はどうなっているのだろうか)

branch

筆者は2通りの使い方をしている。

  • git branch
    • 現在いるブランチを確認することができる。
  • git branch [branch名]
    • 現在いるブランチから新たにブランチを立てることができる。(注:ブランチを生成するだけでチェックアウトはされていない)

checkout

筆者は2通りのの使い方をしている。

  • git checkout [branch]
    • [branch]へ切り替える時に用いる。([branch]が存在しない場合、エラーを吐く)
  • git checkout -b [branch]
    • git branch [branchA] -> git checkout [branchA]と同義。
    • ブランチを新しく生成し、生成したブランチへチェックアウトする。

remote

私はリモートリポジトリを追加/登録する際や、リモートリポジトリを確認(リポジトリに格納されているファイルのことではない)する際に用いている。

  • git remote -v
    • リモートリポジトリの情報を確認することができる。 git_remote_v.png

ブランチを切ってバージョンを管理しよう

開発したシステムを新しい機能を実装したり、発見したバグを修正する場合に、メインのブランチ(恐らくmasterブランチもしくはdevelopブランチ)を直接改修することは一般的にはしない。その理由として、実装したものがエラーを吐いたり、ライブラリの衝突などが発生した場合に、システムが動かなくなる可能性があるためである。ここら辺の考え方はA/Bテストと近いような気がしているが、実際に動かしているシステムとは別の(裏の)ところで改修を加え、実際に問題がなかったら本システムにその変更部分を反映させるのがいいだろう。

改修部分に応じてブランチを切ろう

上司から改修タスクAを任されたとしよう。現状リモートリポジトリとローカルリポジトリの状態は同じで下図のようになっているとする。

ここに図を載せる

この時、以下のようにステップを取ることによってタスクを管理することができる。

git branch
git checkout -b taskA

もしくは

git branch
git branch taskA
git checkout taskA

でも可能である。git branchはできれば毎回推奨したい。というのも、現状いるブランチを確認せずにチェックアウトするとたまに予想もしないブランチから枝(ブランチ)が生える可能性があるからだ。ブランチを切った後に気付いても修正可能だが、少し(筆者にとってはかなり)面倒なので、簡単なチェックでミスを減らせるのであるのだから、やらない手はないだろう。

グラフ等で現状を確認できるが上記のコマンドを入力するとmasterブランチの最新断面からtaskAのブランチが生成され、taskAのブランチにチェックアウトする。

branch_step1.png

ブランチを切った後は改修を加え、add -> commit -> pushを行い、リモートリポジトリにローカルで行った改修を反映させよう。

branch_step2.png

一通り改修が終わったら、元のブランチにマージ(合同開発者がいる場合はマージリクエストをお勧めする)する。

branch_step3.png

次のブログでは

次のブログでは、リモートリポジトリの情報を持ってくる fetch等の考え方に関して説明する。

0
0
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
0
0