Syntax Error.

[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