私は自分のマシンにローカルgitをセットアップしました。私がgitを初期化したとき、私は事前にコンパイルされたライブラリとバイナリを追加しました。しかし、今の私の開発中は、断続的にそれらのファイルをチェックインしたくありません。私はリポジトリからこれらのファイルを削除したくありません。開発が完了するまでこれらのファイルを追跡しないようにする方法はありますか。 (gitにないファイルに対してのみ機能するので、.gitignoreは使用できないと思います。一時的にファイルの追跡を無効にしたいのです。)
git update-index あなたが望むことをするべきです
これはgitにあなたがファイルへの変更を無視し始めたいことを伝えますgit update-index --assume-unchanged path/to/file
追跡をやり直したいときgit update-index --no-assume-unchanged path/to/file
その後、ファイルを追跡しないようにすることができます。
git rm -r --cached <file>
でファイルを追加する
git add -u
彼らはあなたが欲しいものを押すか何でもします。
git rm --cached
ただし、そもそもコンパイルされたバイナリと外部依存関係をコミットするべきではありません。代わりに、Bundlerなどのツールを使用してそれらを取り込みます。
ファイルの追跡を解除するには、次のコマンドを使用します。
git rm --cached <file path>
Git-bookの2.4節の "Undoing Things"でこれについて言及しています。基本的には、いくつかのファイルのインデックスの状態をHEAD状態、つまり最新のチェックアウト(またはコミット)の状態にリセットする必要があります。これにより、ファイルの現在のインデックスへのステージングが元に戻ります。このタスクのコマンドはgit reset
です。[1]
したがって、実行する必要があるコマンドは次のとおりです。
git reset HEAD /path/to/file
新しいバージョンのgit(私は1.6かそこらから私は信じています)はgit status
を実行するときのヒントとしてこのコマンド(そしてもっと多くのもの)を与えます。これらのバージョンは非常にユーザーフレンドリーです。個人的なアドバイス:ファイルをいくつかステージングするだけの場合は、git add -i
を使用してください。これにより対話的なステージングツールが起動し、作業が特に簡単になります。また、実用的な状況でgitを使用することを明示しているので、この本を読むことを強くお勧めします。
各ファイルを個別に選択するのではなく、buildフォルダーまたはbinフォルダー内のファイルをALL削除する方法を求めていると思います。
このコマンドを使用することができます:git rm -r -f /build\*
自分がビルドディレクトリの親ディレクトリにいることを確認してください。
このコマンドは、bin /またはbuild /フォルダ内にあるすべてのファイルを再帰的に「削除」します。 Wordの削除とは、gitがそれらのファイルが「削除された」と見せかけ、それらのファイルが追跡されないことを意味します。 Gitは本当にそれらのファイルを削除モードにするようにマークします。
あなたの.gitignoreに今後のコミットの準備ができていることを確認してください。
ドキュメンテーション:git rm
元の質問に対する答えではありません。しかし、これは誰かに役立つかもしれません。
行った変更を確認するには(どのファイルが--assume-unusedとしてマークされているかを知ってください)
git ls-files -v
結果として得られるファイルのリストには、1文字の接頭辞が付きます(例:Hまたはh)。小文字(つまりh)の場合、ファイルは--assume-同じとなります。
git reset [ファイル]
ステージング領域から作業ディレクトリにファイルを戻す
.gitignoreファイルに自分のノードモジュールを追加するのを忘れることがよくあります、これはその問題を解決します。
これは私のために働きました
git reset HEAD 'ファイル名'
すべての未追跡ファイルを削除します。この端末コマンドを試してください。
git clear -fdx