Jeder Entwickler in meinem Team hat seine eigene lokale Konfiguration. Diese Konfigurationsinformationen werden in einer aufgerufenen Datei gespeichert, devtargets.rb
die in unseren Rake-Build-Aufgaben verwendet wird. Ich möchte jedoch nicht, dass Entwickler die Devtargets-Datei des anderen überfrachten.
Mein erster Gedanke war, diese Datei in die .gitignore
Liste aufzunehmen, damit sie nicht an git gebunden ist.
Dann begann ich mich zu fragen: Ist es möglich, die Datei festzuschreiben, aber Änderungen an der Datei zu ignorieren? Also würde ich eine Standardversion der Datei festschreiben und wenn ein Entwickler sie auf seinem lokalen Computer ändert, würde git die Änderungen ignorieren und sie würde nicht in der Liste der geänderten Dateien angezeigt, wenn Sie einen Git-Status oder ein Git-Commit durchführen .
Ist das möglich? Es wäre sicherlich eine nette Funktion ...
Antworten:
Klar, ich mache genau das von Zeit zu Zeit mit
So machen Sie das Tracking rückgängig und starten es erneut (wenn Sie vergessen haben, welche Dateien nicht mehr verfolgt wurden, lesen Sie diese Frage ):
Relevante Dokumentation :
Ein ordnungsgemäßer Fehler bedeutet in diesem Fall, dass Änderungen an dieser Datei (legitime Änderungen usw.) beim Ziehen angezeigt werden:
und wird sich weigern zu fusionieren.
An diesem Punkt können Sie dies überwinden, indem Sie entweder Ihre lokalen Änderungen rückgängig machen. Hier ist eine Möglichkeit:
Ziehen Sie dann erneut und ändern Sie Ihre lokale Datei erneut, oder stellen
–no-assume-unchanged
Sie sie ein, und Sie können an diesem Punkt normales Verstecken und Zusammenführen usw. durchführen.quelle
git update-index --assume-unchanged
. public-inbox.org/git/…Der bevorzugte Weg, dies zu tun, ist die Verwendung
git update-index --skip-worktree <file>
, wie in dieser Antwort erläutert :Verwenden Sie zum Rückgängigmachen dies
git update-index --no-skip-worktree <file>
Seit der Git-Version 2.25.1 ist dies auch nicht mehr der empfohlene Weg.
quelle
git update-index --skip-worktree
für diesen Zweck zu verwenden.Es scheint gängige Praxis zu sein, eine zu erstellen
devtargets.default.rb
unddevtargets.rb
festzuschreiben und dann jeden Benutzer anzuweisen, diese Datei zu kopieren (die sich in der .gitignore-Liste befindet). Zum Beispiel macht CakePHP dasselbe für seine Datenbankkonfigurationsdatei, die sich natürlich von Maschine zu Maschine ändert.quelle
--assume-unchanged
Option für alle zu verwenden, die das Repository klonen.devtargets.default.rb
dass erdevtargets.rb
nicht vorhanden ist.Für IntelliJ IDEA-Benutzer: Wenn Sie Änderungen für eine Datei (oder Dateien) ignorieren möchten, können Sie sie in eine andere verschieben
Change Set
.Local Changes
(Cmd + 9
)F6
um sie zu einem anderen zu bewegenChange Set
quelle