Wiele osób zaleca używanie git update-index --assume-unchanged
. Rzeczywiście może to być dobre rozwiązanie, ale tylko w krótkim okresie.
Co prawdopodobnie chcesz zrobić to w ten sposób: git update-index --skip-worktree
.
(Trzecią opcją, której prawdopodobnie nie chcesz, jest git rm --cached
:. Zachowa twój plik lokalny, ale zostanie oznaczony jako usunięty ze zdalnego repozytorium.)
Różnica między dwiema pierwszymi opcjami?
assume-unchanged
ma tymczasowo pozwolić ci ukryć modyfikacje przed plikiem. Jeśli chcesz ukryć modyfikacje dokonane w pliku, zmodyfikować plik, a następnie wyewidencjonować inną gałąź, będziesz musiał użyć, no-assume-unchanged
a następnie prawdopodobnie ukrytych modyfikacji zrobionych.
skip-worktree
podąży za tobą niezależnie od gałęzi, którą zamawiasz, wraz ze swoimi modyfikacjami!
Przypadek użycia assume-unchanged
Zakłada, że ten plik nie powinien być modyfikowany i daje czystsze wyjście podczas wykonywania git status
. Ale podczas sprawdzania w innym oddziale musisz zresetować flagę i zatwierdzić lub ukryć zmiany przedtem. Jeśli wyciągniesz z włączoną tą opcją, będziesz musiał rozwiązać konflikty i git nie będzie automatycznie scalał. W rzeczywistości ukrywa tylko modyfikacje ( git status
nie pokazuje oznaczonych plików).
Lubię go używać, gdy chcę zatrzymać na chwilę śledzenie zmian + zatwierdzić kilka plików ( git commit -a
) związanych z tą samą modyfikacją.
Przypadek użycia skip-worktree
Masz klasę konfiguracji zawierającą parametry (np. W tym hasła), które Twoi znajomi muszą zmienić zgodnie z ich konfiguracją.
- 1: Utwórz pierwszą wersję tej klasy, wypełnij pola, które możesz wypełnić, a inne pozostaw puste / puste.
- 2: Zatwierdź i wypchnij go na zdalny serwer.
- 3:
git update-index --skip-worktree MySetupClass.java
- 4: Zaktualizuj klasę konfiguracji o własne parametry.
- 5: Wróć do pracy nad inną funkcjonalnością.
Modyfikacje, które wprowadzisz, podążą za tobą niezależnie od branży. Ostrzeżenie: jeśli Twoi znajomi również chcą zmodyfikować tę klasę, muszą mieć taką samą konfigurację, w przeciwnym razie ich modyfikacje zostaną wypchnięte do zdalnego repozytorium. Podczas pobierania zdalna wersja pliku powinna zastąpić twoją.
PS: wykonaj jedną lub drugą, ale nie obie, ponieważ będziesz mieć niepożądane skutki uboczne. Jeśli chcesz wypróbować inną flagę, najpierw wyłącz tę drugą.
.csproj
pliku, który jest bardzo ważną częścią każdego projektu. Zmiany w.csproj.user
pliku lub dowolnych.Publish.XML
plikach Całkowicie rozumiem brak śledzenia, ale jestem zaintrygowany, dlaczego nie chcesz śledzić.csproj
…