アシアルブログ

アシアルの中の人が技術と想いのたけをつづるブログです

gitお悩み相談室

こんにちは、浦本です。
今日はgitコマンドに関する素朴な疑問について、Q&A形式でまとめてみました。


【Q】 編集がパーになるのが怖くてcheckoutできません。どうしたら良いでしょうか?
【A】 checkoutに-pを付けましょう。確認メッセージが表示されます。



$ git checkout -p ファイル名


編集をそのまま残したい箇所ではnを、
編集をパーにしてよい箇所ではyをタイプします。


【Q】 addしたらdiffに何も表示されなくなりました。どうしたら良いでしょうか?
【A】 diffに--stagedを付けましょう。コミット待ちのdiffが見れます。



$ git diff --staged
あるいは
$ git diff --cached



【Q】 commitの前に毎回diff --stagedを叩くのが面倒です。どうしたら良いでしょうか?
【A】 commitに-vを付けましょう。diffも一緒に確認できます。



$ git commit -v

このオプションを付ける習慣を身につけておけば、
デバッグコードが1年前のcommitに紛れていた・・・」なんていう最悪の事故を防ぐことができます。
もはやチーム内で義務化してしまったほうが良いと言えます。


【Q】 編集途中のファイルを半分だけcommitしたいです。どうしたら良いでしょうか?
【A】 addに-pを付けましょう。編集箇所ごとにaddできます。その後commitします。



$ git add -p ファイル名


checkout -pのときと同様に確認メッセージが表示されます。
addする箇所ではyを、
addしない箇所ではnをタイプします。


【Q】 diffの表示範囲が狭くてどこをいじったか分かりません。どうしたら良いでしょうか?
【A】 diffに-U9999を付けましょう。ファイル全体を見渡せます。



$ git diff -U9999



【Q】 分岐・マージの様子を知りたいです。どうしたら良いでしょうか?
【A】 logに--graphを付けましょう。分岐・マージが可視化されます。



$ git log --graph --oneline


コンパクトな表示にするため、--onelineも付けています。
※この画像はSymfony 2のgitリポジトリを例としています。


【Q】 logを見てもどのファイルが編集されたのか分かりません。どうしたら良いでしょうか?
【A】 logに-pを付けましょう。diff付きでログを見れます。



$ git log -p




【Q】 映画けいおん!が観れるかどうか心配です。どうしたら良いでしょうか?
【A】 チケットのご予約はお早めに。


以上となります。