自分のマシンにローカルgitをセットアップしました。gitを初期化したときに、コンパイル済みのライブラリとバイナリを追加しました。しかし、今は開発中にこれらのファイルを断続的にチェックインしたくありません。これらのファイルをリポジトリから削除したくありません。開発が完了するまで、これらのファイルを追跡しない方法はありますか?(私は.gitignoreを使用できないと思います。それはgitにないファイルに対してのみ機能するためです。一時的にファイルの追跡を無効にしたいと思います。)
自分のマシンにローカルgitをセットアップしました。gitを初期化したときに、コンパイル済みのライブラリとバイナリを追加しました。しかし、今は開発中にこれらのファイルを断続的にチェックインしたくありません。これらのファイルをリポジトリから削除したくありません。開発が完了するまで、これらのファイルを追跡しない方法はありますか?(私は.gitignoreを使用できないと思います。それはgitにないファイルに対してのみ機能するためです。一時的にファイルの追跡を無効にしたいと思います。)
回答:
git update-indexはあなたが望むことをするはずです
これは、ファイルへの変更を無視して開始することをgitに指示します
git update-index --assume-unchanged path/to/file
もう一度追跡を始めたいとき
git update-index --no-assume-unchanged path/to/file
git rm --cached
は、次のプル時に、同じブランチがチェックアウトされている他のマシンのローカルコピーを削除するように思われます。参照arlocarreon.com/blog/git/...とその下の、特に議論を。
あなたはあなたのファイルを追跡しないでおくことができます
git rm -r --cached <file>
ファイルを追加する
git add -u
彼らはあなたが望むものを押したり、何でもします。
git rm --cached .DS_Store
その後、それが印刷rm '../.DS_Store'
され、ローカルファイルが削除されますか?(git version 2.6.4 (Apple Git-63)
)
次のコマンドを使用してファイルの追跡を解除します
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の使用については非常に明確です。
git reset [file]
ファイルのステージを解除する最も簡単な方法であることに同意します。
各ファイルを個別に選択するのではなく、ビルドフォルダーまたはbinフォルダー内のすべてのファイルを削除する方法を尋ねていると想定しています。
このコマンドを使用できます
git rm -r -f /build\*
。ビルドディレクトリの親ディレクトリにいることを確認してください。
このコマンドは、bin /またはbuild /フォルダーにあるすべてのファイルを再帰的に「削除」します。「削除」という言葉は、gitがそれらのファイルが「削除」され、それらのファイルが追跡されないふりをすることを意味します。gitは実際にそれらのファイルを削除モードにマークします。
.gitignoreが次のコミットの準備ができていることを確認してください。
ドキュメント:git rm
git reset [ファイル]
ステージング領域から作業ディレクトリにファイルを戻す
ノードモジュールを.gitignoreファイルに追加するのを忘れることがよくあります。これで問題が解決します。