Viele Leute raten Ihnen zu verwenden git update-index --assume-unchanged
. Dies ist zwar eine gute Lösung, aber nur kurzfristig.
Was Sie wahrscheinlich tun möchten, ist Folgendes : git update-index --skip-worktree
.
(Die dritte Option, die Sie wahrscheinlich nicht möchten, ist : git rm --cached
. Sie behält Ihre lokale Datei bei, wird jedoch als aus dem Remote-Repository entfernt markiert.)
Unterschied zwischen den ersten beiden Optionen?
assume-unchanged
Mit dieser Option können Sie Änderungen vorübergehend aus einer Datei ausblenden. Wenn Sie an einer Datei vorgenommene Änderungen ausblenden, die Datei ändern und dann einen anderen Zweig no-assume-unchanged
auschecken möchten, müssen Sie die vorgenommenen Änderungen verwenden.
skip-worktree
wird Ihnen mit Ihren Änderungen folgen, egal in welcher Filiale Sie sich befinden!
Anwendungsfall von assume-unchanged
Es wird davon ausgegangen, dass diese Datei nicht geändert werden sollte, und Sie erhalten dabei eine sauberere Ausgabe git status
. Wenn Sie jedoch in einen anderen Zweig auschecken, müssen Sie das Flag zurücksetzen und zuvor Änderungen festschreiben oder speichern. Wenn Sie mit aktivierter Option ziehen, müssen Sie Konflikte lösen, und Git wird nicht automatisch zusammengeführt. Tatsächlich werden nur Änderungen ausgeblendet ( git status
die markierten Dateien werden nicht angezeigt).
Ich verwende es gerne, wenn ich Änderungen nur für eine Weile nicht mehr verfolgen möchte + eine Reihe von Dateien ( git commit -a
) festschreiben möchte , die sich auf dieselbe Änderung beziehen .
Anwendungsfall von skip-worktree
Sie haben eine Setup-Klasse mit Parametern (z. B. einschließlich Passwörtern), die Ihre Freunde entsprechend ihrem Setup ändern müssen.
- 1: Erstellen Sie eine erste Version dieser Klasse, füllen Sie Felder aus, die Sie ausfüllen können, und lassen Sie andere leer / null.
- 2: Commit und Push auf den Remote-Server.
- 3:
git update-index --skip-worktree MySetupClass.java
- 4: Aktualisieren Sie Ihre Konfigurationsklasse mit Ihren eigenen Parametern.
- 5: Arbeiten Sie wieder an einer anderen Funktion.
Die Änderungen, die Sie vornehmen, folgen Ihnen unabhängig von der Branche. Warnung: Wenn Ihre Freunde diese Klasse ebenfalls ändern möchten, müssen sie dasselbe Setup haben, andernfalls werden ihre Änderungen in das Remote-Repository übertragen. Beim Ziehen sollte die Remote-Version der Datei Ihre überschreiben.
PS: Machen Sie das eine oder andere, aber nicht beides, da Sie unerwünschte Nebenwirkungen haben. Wenn Sie ein anderes Flag ausprobieren möchten, sollten Sie dieses zuerst deaktivieren.
.csproj
Datei nicht nachverfolgen möchten , was ein wichtiger Bestandteil jedes Projekts ist. Änderungen an der.csproj.user
Datei oder an.Publish.XML
Dateien, die ich völlig verstehen kann, nicht verfolgen, aber ich bin gespannt, warum Sie die nicht verfolgen möchten.csproj
...