git add コマンド
参考:
git-add | Git Documentation [Official]
git rm コマンド
ステージング領域からファイルの登録を削除する。コミットすることでブランチからファイルが削除される。(コミットの履歴としては残り続ける。)
$ git rm --cached path/to/file_or_directory $ git commit -m 'Delete path/to/file_or_directory'
参考:
git-rm | Git Documentation [Official]
git reset コマンド
HEAD
の位置はそのまま、インデックスをリセット (ステージングを全てキャンセル) する。
$ git reset @
特定のファイルまたはディレクトリ以下のみ、ステージングをキャンセルする。
$ git reset @ -- path/to/file_or_directory
参考:
git-reset | Git Documentation [Official]
ワイルドカードで再帰的に合致するファイルをステージングする
find
コマンドの結果を xargs
コマンドにパイプする。-print0
及び -0
をそれぞれオプションとして指定することでパスにスペースが含まれる場合に対応する。
$ find . -path 'path/to/somewhere/**/*.ext' -print0 | xargs -0 git add
参考:
Recursively add files by pattern – Stack Overflow
特定のファイルを除外してステージングする
:!
を頭に付けて除外するパスを指定する。
$ git add -- . :!path/to/excludes_files
参考:
Add all files to a commit except a single file? – Stack Overflow
pathspec … did not match any files
現象:
git rm
コマンドを実行すると、パスの記述に一致するファイルが存在しない旨のエラーが出る。
fatal: pathspec ... did not match any files
原因:
リポジトリに登録されたファイルやディレクトリと合致するものが見つからなかった。
対処法:
--ignore-unmatch
オプションを使うと、リポジトリに登録されていないファイルやディレクトリのみをインデックスから削除できる。(エラーメッセージは抑制される。)
$ git rm --ignore-unmatch path/to/somewhere/*
もしくは、通常の rm
コマンドで削除するだけで良い。
$ rm path/to/somewhere/*
参考:
git rm で fatal: pathspec did not match any files が出るときの解決方法 – Qiita