無視したいファイルを大量にコミットしました。今後のコミットでこれらのファイルを無視するようにgitに指示するにはどうすればよいですか?
編集:私もそれらをリポジトリから削除したいと思います。これらは、ビルド後、またはユーザー固有のツールサポートのために作成されたファイルです。
無視したいファイルを大量にコミットしました。今後のコミットでこれらのファイルを無視するようにgitに指示するにはどうすればよいですか?
編集:私もそれらをリポジトリから削除したいと思います。これらは、ビルド後、またはユーザー固有のツールサポートのために作成されたファイルです。
回答:
.gitignore
無視するファイルに合わせて編集しますgit rm --cached /path/to/file
以下も参照してください。
.gitignore
無視されたファイルと一致するように編集した後git ls-files -ci --exclude-standard
、除外リストに含まれているファイルを確認できます。次にできる
//On Linux:
git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached
//On Windows:
for /F "tokens=*" %a in ('git ls-files -ci --exclude-standard') do @git rm --cached "%a"
//On mac
alias apply-gitignore="git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached"
(ディスクから削除せずに)リポジトリから削除します。
編集:これをエイリアスとして.gitconfigファイルに追加して、いつでも実行できるようにすることもできます。[alias]セクションの下に次の行を追加するだけです(WindowsまたはMacの必要に応じて変更します)。
apply-gitignore = !git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached
(の-r
フラグは、空の結果で実行され、その使用法のメッセージが出力されるのをxargs
防ぎgit rm
ますが、GNU findutilsでのみサポートされる場合があります。他のバージョンでxargs
は、同様のオプションがある場合とない場合があります。)
これgit apply-gitignore
で、リポジトリを入力するだけで作業が完了します。
!
before gitですか?まあ...私のものはとして働いたalias apply-gitignore="git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached"
。tks!
for /F "tokens=*" %a in ('git ls-files -ci --exclude-standard') do @git rm --cached "%a"
-r
がデフォルトであり、BSDバージョンでは受け入れられません。だから削除し-r
ます。
ファイルをリポジトリに残しますが、その後の変更は無視します。
git update-index --assume-unchanged <file>
これを元に戻すには:
git update-index --no-assume-unchanged <file>
このように設定されているファイルを確認するには:
git ls-files -v|grep '^h'
http://blog.pagebakers.nl/2009/01/29/git-ignoring-changes-in-tracked-files/への元の回答に対するクレジット
git ls-files -ci --exclude-standard -z | xargs -0 git update-index --assume-unchanged
役立つ場合は、それを組み合わせることができます。
git rm --cached
すると、リポジトリ内のファイルが削除されます。これは、クイズの必要性を満たしていません。ありがとうございました。ほんとうにありがとう。あなたの答えは私を大いに助けます。
実際のリポジトリが最新バージョンであることを確認してください
.gitignore
好きなように編集git rm -r --cached .
git add .
その後、通常どおりにコミットします
次の手順を実行します:
gitignore
ファイルへのパスを追加
このコマンドを実行する
git rm -r --cached foldername
通常どおり変更をコミットします。