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】 チケットのご予約はお早めに。
以上となります。