menu
書いてる野郎
orebike@gmail.com
コミット対象となる変更を登録する処理。 この後に commit することでリビジョンとして確定させる。
$ git add hoge.txt
Git では対象のファイルの一部分だけステージングすることができる。
$ git add -p hoge.txt
起動すると変更の差分の塊(Git では humk と呼ぶ)単位でステージングするか聞いてくるので、y でステージング n でスキップできる。
$ git add -i
便利そうな機能ではあるが、操作性が最悪で tig の代わりになるようなモノではない
ワークに変更がある状態でこれを実行するとこのような表示になる
$ git add -i staged unstaged path 1: unchanged +1/-0 f1.txt 2: unchanged +1/-0 f2.txt *** Commands *** 1: status 2: update 3: revert 4: add untracked 5: patch 6: diff 7: quit 8: help What now>
ここでの操作体系は
What now>
で Command 選ぶとなっている。
この 表示も Commands もややこしいのだが、staged のカラムに unchanged となっているやつが stage されてないやつということである。
そして stage したいなら update, unstage したいなら revert を選ぶ。ややこしい。 diff は stage されたモノしか差分を見れない
最初の一発目とかに大量に追加する必要がある場合。ドット指定
$ git add .
つまり git status
で候補のやつを全部ステージ
$ git add -A
思わぬところが変更されている可能性があるのであんまり使わないほうがよいと思う。
つまり、add
で追加したファイルをやっぱりやめたする時
$ git reset HEAD hoge.txt
$ git commit
これでできる。実行すると Editor が起動してログの書き込みを促されるので、書き込んで保存すると commit が完了する。
コミットログを同時にかき込むならこれでもできる
$ git commit -m "hogehoge"
コミットでミスってしまった〜!って時にやるやつ
$ git commit --amend -m 'hogehogehoge'
修正ではなくて削除して再作成になるので、本当にミスった、1秒後にちょっと修正しようという場合にしか使えない
$ git rm --cached hogehoge.html
$ git commit --allow-empty -m "hogehoge"