MENU

【備忘録】Gitコマンド branch操作でよく使うコマンド

目次

背景

チーム開発を進めるにあたって、リモートのブランチを反映させたり、編集中の内容を別ブランチに移動したりする必要が出てきたため、備忘録的にまとめることとした。

リモートブランチをチェックアウトする

・最新の情報を取得する

$ git fetch

・リモートブランチの一覧を表示する

$ git branch -r

・リモートブランチをローカルブランチにチェックアウトする
(リモートとローカルのブランチ名は合わせるのが一般的)

$ git checkout -b [local branch name] origin/[remote branch name]

・【補足】ローカルにリモートと同じ名前のブランチがない場合、下記でもチェックアウト可能

$ git checkout [remote branch name]

ローカルブランチを削除する

・現在のブランチを削除することはできないので、削除する対象以外のブランチに切り替える(checkoutやswitch)

$ git checkout [other branch]

・ブランチを削除する
(リモートブランチにpushおよびmerge済みの場合のみ削除が実行される)

$ git branch -d [target branch]

・強制的に削除したい場合は、-Dオプションを使用する

$ git branch -D [target branch]

現在の変更内容を別のブランチに移動する

・正しいブランチに変更を移動する方法は、移動したい変更の状態によって対処方法が異なるため、事前に確認する

$ git status

変更が作業ツリー(git addの前)にある場合

Changes not staged for commit欄(新規作成の場合はUntracked files欄)にファイルの変更が登録されていることを確認

・現在(変更を無かった事にしたい)ブランチで作業ツリー上の変更を退避する

$ git stash save

・【補足】退避できていることを確認する場合は下記を実行

$ git stash list

・変更を適用したいブランチに移動する

$ git checkout [target branch]

・退避した変更を正しいブランチに反映させる

$ git stash pop

変更がステージ(git addの後)にある場合

Changes to be commited欄(新規作成の場合はUntracked files欄)にファイルの変更が登録されていることを確認

・ブランチのステージ上の変更をHEADの状態に戻す

$ git reset HEAD

#ファイル名を指定する場合
$ git reset HEAD -- [file name]

・以降「変更が作業ツリー(git addの前)にある場合」と同手順

変更がコミット済の場合

・ログを表示して戻したいコミットを確認

$ git log --oneline [wrong branch]

・正しいブランチに移動する

$ git checkout [target branch]

#未作成の場合は作成する
$ git checkout -b [target branch]

・変更内容を正しいブランチにマージする
(上記でブランチを新規作成した場合は作業不要)

$ git merge [wrong branch]

・コミットを削除する

$ git reset --hard HEAD[number to delete]
#[]内はログで確認した削除したい数のコミット数を数字入力

参考記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次
閉じる