Git ignorieren Dateien, die verfolgt werden, ohne sie zu löschen
Ich habe einige Probleme, grundlegende Git-Konzepte zu verstehen: /
Ich teste auf meinem lokalen Windows-Computer, bevor ich einige Dinge auf meiner git-kontrollierten Site ausprobiere.
Ich habe:
gittesting/repo1:
file.txt
ignoreme:
ignore.txt
und
gittesting/repo2
file.txt
ignoreme:
ignore.txt
Repo2 ist eine kopie von repo1 und ignoreme wird bereits verfolgt. Die Datei ignore.txt wird in repo2 geändert, aber ich möchte aufhören, sie zu verfolgen, und damit git sie vollständig ignoriert. Das Problem ist, dass wenn ich eine .gitignore-Datei erstelle und ignoreme hinzufüge, es zu spät ist, weil sie bereits verfolgt wird, so dass ich git rm --cached ignore ausführen müsste, sie dann aber als gelöscht markiert und wenn ich die Festschreibung auf gezogen habe repo1 würde das Verzeichnis gelöscht, anstatt alleine gelassen zu werden.
Etwas zusammenfassen:
Die ignore.txt haben unterschiedliche Inhalte zwischen den beiden Repos.Ich möchte, dass der Inhalt von ignore.txt unverändert bleibt und von git vollständig ignoriert wirdIch habe online gesucht, im IRC nachgefragt und mir die sehr verwandten Fragen angesehen, kann aber keinen Weg finden, dies zu tun. Ich weiß, dass das Beispiel trivial erscheint, aber es ist genau das, was ich auf meiner Site tun muss, wo das Verzeichnis stattdessen Forum / Cache ist.
bearbeiten:
Dies ist ein kleiner Hack und ich würde eine bessere Antwort vorziehen, aber am Ende tat ich Folgendes:
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