Jak skonfigurować git do ignorowania niektórych plików lokalnie?
Czy Mogę ignorować pliki lokalnie bez zanieczyszczania globalnego git config dla wszystkich innych? Mam nie śledzone pliki, które są spamem w moim statusie git, ale nie chcę wprowadzać zmian w konfiguracji git dla każdego małego losowego pliku, który mam w moich lokalnych oddziałach.
9 answers
Z odpowiedniej dokumentacji Git :
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 trafić do pliku
$GIT_DIR/info/exclude
.
Plik .git/info/exclude
ma taki sam format jak każdy plik .gitignore
. Inną opcją jest ustawienie core.excludesFile
na nazwę pliku zawierającego wzorce globalne.
Uwaga, jeśli po edycji ignorowanych wzorców musisz uruchomić następujące zmiany:
git update-index --assume-unchanged [<file>...]
uwaga na $GIT_DIR
: jest to zapis używany w podręczniku git po prostu do wskazania ścieżki do repozytorium git. Jeśli zmienna środowiskowa jest ustawiona, to nadpisze lokalizację repo, w którym się znajdujesz, co prawdopodobnie nie jest tym, czego chcesz.
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
2017-11-08 23:29:25
Update: rozważ użycie git update-index --skip-worktree [<file>...]
zamiast tego, dzięki @danShumway! Zobacz Wyjaśnienie Borealida na temat różnicy dwóch opcji .
Stara ODPOWIEDŹ:
Jeśli chcesz zignorować lokalne zmiany śledzonych plików (mamy to z lokalnymi modyfikacjami plików konfiguracyjnych), użyj git update-index --assume-unchanged [<file>...]
.
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
2017-09-19 03:53:04
Dodaj następujące wiersze do sekcji [alias] twojego .plik gitconfig
ignore = update-index --assume-unchanged
unignore = update-index --no-assume-unchanged
ignored = !git ls-files -v | grep "^[[:lower:]]"
Teraz możesz użyć git ignore my_file
, Aby zignorować zmiany w pliku lokalnym i git unignore my_file
, aby przestać ignorować zmiany. git ignored
wyświetla listę ignorowanych plików.
Ta odpowiedź została zaczerpnięta z http://gitready.com/intermediate/2009/02/18/temporarily-ignoring-files.html .
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
2013-08-19 15:21:38
Masz kilka opcji:
- pozostaw brudny (lub niezakontraktowany)
.gitignore
plik w katalogu roboczym (lub zastosuj go automatycznie za pomocą topgit lub innego tego typu narzędzia). - Umieść excludes w pliku
$GIT_DIR/info/exclude
, jeśli jest to specyficzne dla jednego drzewa. - Uruchom
git config --global core.excludesfile ~/.gitignore
i dodaj wzorce do swojego~/.gitignore
. Opcja ta ma zastosowanie, jeśli chcesz zignorować pewne wzorce na wszystkich drzewach. Używam tego na przykład do plików.pyc
i.pyo
.
Także, upewnij się, że używasz wzorców, a nie jawnie wyliczasz pliki, jeśli ma to zastosowanie.
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
2009-11-18 19:21:17
Myślę, że szukasz:
git update-index --skip-worktree FILENAME
Które ignorują zmiany dokonane lokalnie
Oto http://devblog.avdi.org/2011/05/20/keep-local-modifications-in-git-tracked-files / więcej wyjaśnień na temat tych rozwiązań!
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
2016-03-01 15:22:39
Możesz zainstalować kilka aliasów git, aby uprościć ten proces. Edytuje węzeł {[1] } Twojego pliku .gitconfig
.
git config --global alias.ignore 'update-index --skip-worktree'
git config --global alias.unignore 'update-index --no-skip-worktree'
git config --global alias.ignored '!git ls-files -v | grep "^S"'
W tym celu należy skontaktować się z działem obsługi klienta.]}
-
git ignore config.xml
- git będzie udawał, że nie widzi żadnych zmian na
config.xml
- zapobiegając przypadkowemu popełnieniu tych zmian.
- git będzie udawał, że nie widzi żadnych zmian na
-
git unignore config.xml
- git wznowi uznawanie Twoich zmian do
config.xml
- pozwalając ci ponownie zatwierdzić te zmiany zmiany.
- git wznowi uznawanie Twoich zmian do
-
git ignored
- git wyświetli listę wszystkich plików, które "ignorujesz" w sposób opisany powyżej.
Zbudowałem je odwołując się do odpowiedzi phatmanna - która przedstawia --assume-unchanged
wersję tego samego.
Prezentowana przeze mnie wersja używa --skip-worktree
do ignorowania lokalnych zmian. Zobacz odpowiedź Borealida , aby uzyskać pełne wyjaśnienie różnicy, ale zasadniczo --skip-worktree
celem jest dla programistów zmiana plików bez ryzyka popełnienia ich zmian .
Przedstawione tutaj polecenie git ignored
używa git ls-files -v
i filtruje listę tak, aby pokazywała tylko te wpisy zaczynające się od tagu S
. Znacznik S
oznacza plik, którego status to "pomiń obszar roboczy". Pełna lista stanów plików pokazana przez git ls-files
: zobacz dokumentację dla opcji -t
na git ls-files
.
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
2017-11-03 13:00:39
Możesz po prostu dodać .plik gitignore do katalogu domowego, np. $HOME/.gitignore
lub ~/.gitignore
. Następnie powiedz gitowi, aby użył tego pliku za pomocą polecenia:
git config --global core.excludesfile ~/.gitignore
To jest normalne .plik gitignore, do którego Git odwołuje się przy podejmowaniu decyzji, co ma ignorować. Ponieważ znajduje się w Twoim katalogu domowym, dotyczy tylko Ciebie i nie zanieczyszcza żadnego projektu .pliki gitignore.
Używam tego podejścia od lat z doskonałymi wynikami.
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
2018-07-26 14:32:35
Nie zapomnij przyznać się do jednego faktu, odpowiadając @joss lee.
git update-index --assume-unchanged directory/
Zwróć uwagę na ukośnik(/) na końcu.
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
2018-02-07 13:31:23
Jeśli twój repo jeszcze nie ma .pliku gitignore, a następnie prostym rozwiązaniem jest utworzenieplik gitignore, a w nim Dodaj .gitignore
do listy plików, które mają być ignorowane.
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
2016-08-08 21:34:35