untrackedファイルをadd --patch
するには、
git add --intent-to-add
を対象ファイルに対して行わなければならず、
尚且つgit add --intent-to-add
を実行した対象ファイルを
一つ一つgit reset
しなければgit commit
ができなくなるというもので、
本来であれば以下のような流れが必要になる。
git add -N $UNTRACKED_FILES
git add -p
git reset $UNTRACKED_FILES
git commit
これはファイル数が多くなれば、とても面倒。
ということで以下のようなワンラインを作成してみた。
$ git config --global alias.add-patch-with-untracked
! git status -s | cut -c4- | xargs git add -N && git add -p && git status -s | grep '^ ' | cut -c4- | xargs git reset
上記のような面倒な手順が、
git add-patch-with-untracked
git commit
で完結するようになる。
上記を追加するには、直接~/.gitconfig
をいじってしまうのが早い
$ git config --global --edit
~/.gitconfig
[alias]
add-patch-with-untracked = ! git status -s | cut -c4- | xargs git add -N && git add -p && git status -s | grep '^ ' | cut -c4- | xargs git reset
以上。