【Git】Gitのよく使うコマンド応用編

git

環境はMac、gitがインストールされている前提。

今回はブランチの操作

git branch
ブランチの一覧を表示

現状のブランチはmasterのみ。左側に表示されている*(アスタリスク)は現在のブランチ。

ちなみに、git branch ブランチ名 でブランチを作成。

git checkout -b ブランチ名
ブランチを作成し切り替え。

現在のmasterブランチをもとに、branch-Aというブランチを作成
その後ブランチ一覧を確認すると、現在のブランチがbranch-Aに切り替わっていることがわかる。

-b ブランチ名で切り替えを行う。
つまり、上記コマンドは以下のコマンドをまとめて行なっていることになる。

git branch branch-A
git checkout branch-A

README.mdファイルに一行追加してコミットを行う。

masterブランチに切り替え、ファイルがコミットの影響を受けていないことを確認。

git checkout -(ハイフン)で、一つ前にいたブランチに移動

git merge
ブランチのマージを行う

作成したブランチ(branch-A)をmasterブランチにマージを行う。
※現在のブランチをmasterに切り替えて、マージを行う。
※–no-ff オプションでnon-Fast Forwardのマージを行う。

git log –graph
ブランチを視覚的に確認する

branch-Aがマージされたことが視覚的にわかる。

git reset
過去の状態に戻す

ここで一旦、branch-Aに分岐する前に戻したい場合git resetコマンドを使う。

git reset –hard 戻したいコミットのハッシュ値を指定する

ログを確認すると、branch-Aの分岐作成前に戻っていることがわかる。

この状態で、fix-brangh-Bを作成する

README.mdに一文追加

コミットを行う。

もう一度、branch-Aをマージした状態に戻す

git reflogコマンドで現在のリポジトリのログを全て参照し、branch-Aをマージしたハッシュ値を確認する。ちなみに、git logコマンドは現在から見て過去のログしか参照できない。

git resetを行う。

fix-branch-Bをマージする

すると、コンフリクトが発生する。branch-Aもfix-branch-BもREADME.mdを編集しているためだ。

コンフリクトを解消する。

編集後コミット、これでマージは完了。

git commit –amend
直前のコミットメッセージを編集

コンフリクトのメッセージ(fix conflict)は不要なので、ここではマージのコメントを残すように修正。
git commit –amendでviが立ち上がるので、コメント部分を修正する。

修正し保存↓

ログを確認するとコメントが修正されていることが分かる

それでは次にもう一つブランチを作成してみる。

README.mdに一行追加

コミットを行う。

ここで先ほど一行追加した部分にスペルミスがあることに気づきました。blanch→branch
修正して、差分を取ります。

コミットします。

ここでログを確認すると、当然スペルミスのログが存在します。

このFix typoのコミットを一つ前のコミットと統合させます。

git rebase -i HEAD~2
コミットの統合

上記コマンドでエディタが立ち上がるので、統合したいコミットのpickをfixupに修正し、保存。

rebaseが成功した旨が表示されます。

ログを見てみると、スペルミスがまるで無かったかのように、コミット履歴が新しく作られていることが分かる。

これをmasterブランチにマージ。

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