[Git] git でのブランチを使った基本操作覚書

個人開発でよく使うパターンの git コマンドを整理してみます

環境&対象

以下の環境で動作確認を行なっています。

  • macOS Big Sur 11.1
  • git 2.24.3(Apple Git-128)

前提

Git の上で git flow を使っているので、開発ブランチは develop、リリースブランチは、main です。

基本的に変更を入れるときは ブランチ -> トランク(develop or main) に反映 という手順にしています。

個人的な趣味かもしれませんが、fast-forward コミットは 好きでないので、develop や main に新しいコミットとしてマージしています。

自分しかコミットしないので、大きな Conflict は発生しないのですが、複数ブランチを使っているときは、可能な限りリベースして将来的な Conflict を減らそうとしています。

概要

上記のような前提だと、git はすごく シンプルに使うことになります。以下のようなパターンが大半です。

  • ブランチを作成する (+ブランチ名の変更)
  • ブランチにコミットする(+コメント修正)
  • ブランチをトランクにマージ (+ブランチ削除)
  • 複数のブランチが併存するケースでは、可能な限りリベースする
  • 間違ったブランチで作業してしまい、変更を別ブランチに移動させる

ブランチ作成

何らかの変更を入れるときには、全てブランチを作成して作業します。

急いでいたりすると忘れがちなので、特に理由はなくとも、ブランチを作成し、checkout するようにしています。

その際のブランチ名は適当でも後から簡単に変更できます。

branchA というブランチを作りたければ以下のコマンドです。

ブランチ作成

ブランチ名は、以下のコマンドで変更できます。

ブランチ名変更

変更をブランチにコミット

知らない人はいないですよね。

コミット

コミットした後に、コメントを修正したくなったら以下のコマンドで修正できます。

コメント修正

ブランチをトランクにマージ

前提にも書きましたが、ファストフォワードが好きでないので、 –no-ff オプションをつけて使っています。

トランクにマージ

トランクにマージして確認した後に、作業ブランチを削除してます。

ブランチを削除

ブランチをマージした後に、既存別ブランチのベースを変更する

branchA と branchB を同じタイミングで develop からブランチさせて、最初に branchB を develop にマージしたとします。

branchA を (branchB をマージした) develop から再度ブランチさせることで、branchA を (将来的に)develop にマージするタイミングでのコンフリクトを減らすことができると予想できます。

ということで、すでにあるブランチを再度ブランチしなおす(リベースすると呼ばれます)には、以下のコマンドです。

コード

変更を別ブランチに移動させる

ブランチを間違えて作業してしまっても コミット前であれば、その変更を移動させることができます。

以下は、branchA でしてしまった作業を branchB へ移動させる操作です。

コード

SourceTree 等の GUI で操作することも多いですが、コマンドラインを覚えておくといざというときに便利です。

説明は以上です。
不明な点やおかしな点ありましたら、こちらまで。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です