うっかり秘匿情報をプッシュした経験はありませんか?
そんな悲劇を回避するためのtipsです。
そもそも
$ git add -A
するな。
force push並の大罪やぞ。悔い改めろ。
git add -pとは
Git - git-add Documentationからの引用
-p
--patch
Interactively choose hunks of patch between the index and the work tree and add them to the index. This gives the user a chance to review the difference before adding modified contents to the index.This effectively runs add --interactive, but bypasses the initial command menu and directly jumps to the patch subcommand. See “Interactive mode” for details.
要するにaddする前
に差分を対話的
に確認できるコマンドです。
Let's try
ワーキングツリーに差分がある状態で、 $ git add -p
してみてください。
こんな感じになるはずです。
差分の塊(hunk)をステージするかを対話的に聞かれるので、[y,n,q,a,d,e,?]を使って、処理していきます。
Stage this hunk [y,n,q,a,d,e,?]?
困ったときは?
を実行してください。helpが表示されます。
y - stage this hunk
n - do not stage this hunk
q - quit; do not stage this hunk or any of the remaining ones
a - stage this hunk and all later hunks in the file
d - do not stage this hunk or any of the later hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex い。
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
e - manually edit the current hunk
? - print help
なんだか色々あって不安になるかもしれませんが、y
とn
の2つを覚えれば大丈夫です。
y
差分の塊(hunk)をステージングします。
差分の内容を確認し問題なければy
です。n
差分の塊(hunk)をステージングしません。
差分の内容を確認し意図しない秘匿情報や、デバッグログ出力等が含まれていた場合はn
です。
一つ処理するとまた次の差分が自動的に表示され、全ての差分に対して処理するまで続きます。
※ q
で強制的にそれ以降を全てステージングせずにadd -p
を終了することも出来ます。
上記の処理を繰り返してステージングが完了したら、いつものようにcommitを行ってください。
反省
force push並の大罪やぞ。悔い改めろ。
とかいいながら、サンプルプロジェクト作るときに-Aを使ってしまいました。悔い改めます。
Top comments (0)