[Sy] よく忘れるgitのコマンド集
2015/05/26
(更新: 2018/08/29)
ぼくがよく忘れる git のコマンドを備忘録としてまとめておきます。
ブランチを作って同時に切り替え
普通だったらこう。
$ git branch [branch_name]
$ git checkout [branch_name]
あぁめんどくさい!1 回で済ませたい!というときはこう。
$ git checkout -b [branch_name]
リモートにしかないブランチをローカルにチェックアウト
例えば、リモートに新しくnew_branch
というブランチが作られたとして、これをローカルにチェックアウトしたい!という場合の手順。
まずはローカルはまだnew_branch
の存在を知らないので、リモートのブランチの情報を取得。
$ git fetch --prune
--prune
オプションは別になくてもいいんですが、これつけるとリモートで削除されたブランチの情報を消してくれるので、つけておけば良いかと。
リモートから取得してきたブランチのリストにnew_branch
があるかチェック。
$ git branch -a | grep new_branch
remotes/origin/new_branch
最後にローカルに作りたいブランチをorigin/new_branch
をベースに作成してチェックアウト。
$ git checkout -b new_branch origin/new_branch
すでにリポジトリの管理対象になってるファイルを.gitignore で除外したい場合
例えば log ファイルが間違って管理対象になってしまってリポジトリから消したい場合、.gitignore
を編集してもそれだけだと消えてくれない。
この場合、一度インデックスをきれいにしなおさないといけない。
なので一旦インデックスをすべて削除します。(※インデックスを消すだけなので、ファイルの実体は消えないのでご安心を)
$ git rm -r --cached .
で、改めてインデックスしなおす。
$ git add .
これで新しく.gitignore で除外対象にしたファイルが deleted になってリポジトリの管理対象から外れます。(ファイルの実体は残ったままで、インデックスから除外できる)
そしてコミットして完了!
$ git commit -m '.gitignoreを編集してxxxxを除外対象にしたよ。'
merge しようとしたらコンフリクトが起きたのでなかったことにしたい
$ git merge xxxxx
でマージしようとしたらコンフリクトが起きて、一旦やめよう、というときは上のコマンドの直後に、
$ git reset --hard HEAD
で OK。
リモートにあるブランチを確認したい
git branch
にオプションつければ OK。
$ git branch -r