/ / Tymczasowo ukryj niektóre zmienione pliki w git - git

Tymczasowo ukryj niektóre zmienione pliki w git - git

Ilekroć wykonuję zadanie, tworzę lokalnyOddział w git, a następnie muszę zmodyfikować kilka plików konfiguracyjnych (głównie zawierających ciągi połączeń do baz danych), aby ustawić do mojego lokalnego środowiska przed rzeczywistą pracą. Zmiany, których nie chcę przesyłać do repozytorium później, po skończeniu zadania.

Właściwie wolałbym je odfiltrować podczas przeglądania zmienionych plików (git status).

Mogłem wykonać pierwsze zobowiązanie do mojego lokalnego oddziału i wycofać je przed wypychaniem. Ale jest szansa, że ​​zapomnę o. Czy jest lepszy sposób na to?

Odpowiedzi:

3 dla odpowiedzi № 1

Najbardziej zalecanym rozwiązaniem jest użycie:

git update-index --skip-worktree <file>

Dokumentacja:

- [no-] skip-worktree

Gdy podano jedną z tych flag, obiektnazwa nagrana dla ścieżek nie jest aktualizowana. Zamiast tych opcji ustaw i anuluj bit "skip-worktree" dla ścieżek. Patrz sekcja "Skip-worktree bit" poniżej, aby uzyskać więcej informacji.

I pomiń kawałek worktree:

Kawałek Skip-worktree

Bit Skip-worktree można zdefiniować w jednym (długim)zdanie: czytając wpis, jeśli jest oznaczony jako skip-worktree, Git udaje, że jego wersja katalogu roboczego jest aktualna i zamiast tego odczytuje wersję indeksu.

Aby rozwinąć, "czytanie" oznacza sprawdzenie plikuistnienie, odczytywanie atrybutów pliku lub zawartości pliku. Wersja katalogu roboczego może być obecna lub nieobecna. Jeśli jest obecny, jego treść może być zgodna z wersją indeksu lub nie. Zapis ten nie ma wpływu na ten bit, bezpieczeństwo treści jest nadal priorytetem. Zauważ, że Git może zaktualizować plik katalogu roboczego, oznaczony jako skip-worktree, jeśli jest to bezpieczne (tzn. Wersja katalogu roboczego pasuje do wersji indeksu)

Chociaż bit ten wygląda jak bit niezmieniony, jego cel jest inny niż bit niezmieniony. Skip-worktree ma również pierwszeństwo przed bitem założonym-niezmienionym, gdy oba są ustawione.

The --assume-unchanged flaga jest przeznaczona do poprawy wydajności, natomiast --skip-worktree jest przeznaczony dla przypadków, w których zmieniasz plik i chcesz, żeby git i tak go pominął.

Aby cofnąć, użyj:

git update-index --no-skip-worktree <file>

3 dla odpowiedzi № 2

Aby tymczasowo zignorować zmiany w określonym pliku, możesz to zrobić:

git update-index --assume-unchanged <file>

Aby ponownie śledzić zmiany, wystarczy uruchomić:

git update-index --no-assume-unchanged <file>