基本的なgitの概念を理解するのに苦労しています:/
Git で制御されたサイトでいくつかのことを試す前に、ローカルの Windows マシンでテストしています。
私は持っている:
gittesting/repo1:
file.txt
ignoreme:
ignore.txt
と
gittesting/repo2
file.txt
ignoreme:
ignore.txt
Repo2 は repo1 のコピーであり、ignoreme は既に追跡されています。ignore.txt ファイルは repo2 で変更されますが、追跡を停止し、git が完全に無視するようにしたいと考えています。問題は、.gitignore ファイルを作成して ignoreme を追加すると、既に追跡されているため手遅れになることです。そのため、git rm --cached ignore を実行する必要がありますが、削除済みとしてマークされ、コミットをプルした場合repo1、ディレクトリはそのままではなく削除されます..
要約すると:
- ignore.txt の内容は、2 つのリポジトリ間で異なります。
- ignore.txt の内容をそのままにして、git によって完全に無視されるようにしたい
オンラインで調べたり、IRC で質問したり、非常に関連する質問を見たりしましたが、これを行う方法が見つかりません。この例は些細なことのように思えますが、ディレクトリが代わりに Forum/cache である私のサイトで行う必要があることはまさにそれです。
編集:
これはちょっとしたハックであり、より良い答えを望んでいますが、最終的には次のようになりました。
cd repo2
echo "ignoreme" > .gitignore
echo "ignoreme/*" > .gitignore
git rm --cache -r ignoreme
git commit -m "Should ignore now"
cd ../repo1
mv ignoreme ignoreme2
git pull ../repo2
mv ignoreme2 ignoreme