Git: Ignorowanie Plików Sterowanych Wersjami
The .plik gitignore jest bardzo przydatny w ignorowaniu niektórych plików, których nie chcemy kontrolować. Niestety, nie można go użyć, gdy plik jest już pod kontrolą wersji. Na przykład, mój .plik gitignore (który jest już dodany do Gita) może być inny niż mój współpracownik (np. chcę zignorować pliki Vima). Za każdym razem, gdy wprowadzam zmiany w tym pliku, git pokazuje go jako zmodyfikowany plik. Więc moje pytania:
- Czy Jest jakiś sposób, aby zignorować zmiany dla pewnego plik, który jest już kontrolowany przez Git?!
- Czy Jest jakiś sposób, aby wprowadzić te zmiany, ale zachować je tylko dla siebie? Oczywiście nie chcę korzystać z gałęzi, ponieważ pracuję nad określoną gałęzią.
6 answers
Jeśli chcesz wykluczyć pliki specyficzne dla Twojego procesu (takie jak pliki tymczasowe Vima), edytuj (lokalny) plik .git/info/exclude
i dodaj tam swoje wzorce wykluczeń. Ten plik jest przeznaczony do wyłączeń specyficznych dla programistów, a nie .gitignore
, który jest przeznaczony do wyłączeń obejmujących cały projekt.
Krótkie podsumowanie jest takie, że każdy powinien się zgodzić co do tego, co jest dodawane do .gitignore
. W przypadku plików, na które nie wyrażasz zgody, użyj .git/info/exclude
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-08 12:30:56
Użyj git-update-index aby tymczasowo zignorować zmiany w plikach, które są już pod kontrolą wersji:
git update-index --assume-unchanged <files>
Aby cofnąć to użycie:
git update-index --no-assume-unchanged <files>
Spójrz również na opcje skip-worktree
i no-skip-worktree
dla update-index, jeśli potrzebujesz tego, aby utrzymać się poza git-reset
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-02 17:33:34
Możesz użyć tego polecenia, aby uzyskać pożądane.
git rm --cached path/to/file
Lub
git rm -r --cached path/ignore/dir
Usunie tylko ścieżkę z Gita, nie usunie prawdziwych plików.
Następnie możesz edytować plik ignorowania, aby usunąć śledzenie tych plików lub dirs.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-03 14:52:43
Naprawdę nie mogę odpowiedzieć na ogólne Pytanie ( Git ignoruje śledzone pliki) - wydaje mi się, że funkcja byłaby o wiele bardziej szkodliwa niż użyteczna.
Jednakże strona podręcznika gitignore określa kilka sposobów konfigurowania wzorców dla wykluczonych plików.
W szczególności daje wyraźne instrukcje, jak korzystać z tych różnych sposobów:
- wzorce, które powinny być kontrolowane i dystrybuowane do innych repozytoriów poprzez klonowanie (tzn. pliki, które wszyscy programiści będą chcieli zignorować) powinny trafić do pliku
.gitignore
.
Co oznacza, że Twój plik .gitignore
nie powinien różnić się od twoich współpracowników - działa zgodnie z przeznaczeniem.
Proszę bardzo. Określ ścieżkę pliku
Wzorce, które są specyficzne dla konkretnego repozytorium, ale nie muszą być współdzielone z innymi powiązanymi repozytoriami (np. pliki pomocnicze, które żyją w repozytorium, ale są specyficzne dla przepływu pracy jednego użytkownika), powinny zostać umieszczone w pliku
$GIT_DIR/info/exclude
.Wzorce, które użytkownik chce, aby git ignorował we wszystkich sytuacjach (np. backup lub pliki tymczasowe generowane przez edytor użytkownika) zazwyczaj trafiają do pliku określonego przez
core.excludesfile
w~/.gitconfig
użytkownika.
core.excludesfile
do pliku ~/.gitconfig
, a następnie umieść w nim wzorce, które chcesz wykluczyć.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-08 11:52:48
Napisałem o trzech sposobach wyłączenia plików gdzie indziej.
W podsumowaniu:
- globalny plik Git ignore ma zastosowanie do wszystkich repozytoriów w tym systemie
- The .plik gitignore w repozytorium stosuje repozytorium i wszystkie klony tego repozytorium.
- The .plik git/info / exclude ma zastosowanie tylko do tego repozytorium.
Niższe pozycje na liście mają pierwszeństwo przed wyższymi, a !
przed pozycją w dowolnym z wzorce w pliku odwracają poprzednie wykluczenie.
Ten paradygmat jest widoczny gdzie indziej w Git. Na przykład, jeśli używasz podmoduł, adres url do podmodułu, którego chcesz użyć, znajduje się w pliku .gitmodules
w repozytorium, ale możesz przesunąć adres url, aby użyć go w .plik Git / config.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-08 13:55:39
Oto uogólnione, ubiquitos (Nie indywidualne) rozwiązanie dla tych, którzy używają Git pod SmartGitHG viusal interface:
- Wybierz folder, który chcesz zignorować w oknie "repozytoria";
- Wybierz wszystkie pliki z tego folderu w oknie "pliki" (odkryj niezmienione pliki, klikając odpowiednią ikonę filtra w prawym górnym rogu okna głównego);
- kliknij "Usuń" w Panelu sterowania (zaznacz pole wyboru "Usuń pliki lokalne", jeśli potrzebujesz);
- commit local changes;
- rightclick na folderze w oknie "repozytoria";
- Kliknij "Ignoruj".
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-09 19:33:24