git dodaje tylko zmodyfikowane zmiany i ignoruje nie śledzone pliki
Uruchomiłem "Git status" i poniżej wymieniono kilka plików, które zostały zmodyfikowane/lub pod nagłówkiem "changes not stsinged for commit". Wymienił również niektóre nie śledzone pliki, które chcę zignorować(mam".gitignore " pliku w tych katalogach).
Chcę umieścić zmodyfikowane pliki w stagingu, aby móc je zatwierdzić. Kiedy biegłem " git add .", dodała zmodyfikowane pliki i pliki, które chcę zignorować do stagingu.
Jak dodawać tylko zmodyfikowane pliki i ignorować nie śledzone pliki, jeśli poniżej prezentujemy status git.
Również, są moje".gitignore " pliki działają poprawnie?
$ git status
# On branch addLocation
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: someProject/path/domain/viewer/LocationDO.java
# modified: someProject/path/service/ld/LdService.java
# modified: someProject/path/service/ld/LdServiceImpl.java
# modified: someProject/path/web/jsf/viewer/LocationFormAction.java
# modified: someProject/war/WEB-INF/classes/message/viewer/viewer.properties
# modified: someProject/war/page/viewer/searchForm.xhtml
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .metadata/
# someProject/build/
no changes added to commit (use "git add" and/or "git commit -a")
5 answers
Najlepiej, aby twoje .gitignore
zapobiegało wyświetlaniu plików nie śledzonych ( i ignorowanych )w statusie, dodawaniu za pomocą git add
itd. Proszę więc o poprawienie swojego .gitignore
Możesz zrobić git add -u
tak, aby skompilować zmodyfikowane i usunięte pliki.
Możesz również zrobić git commit -a
, Aby zatwierdzić tylko zmodyfikowane i usunięte pliki.
Zauważ, że jeśli masz Git w wersji przed 2.0 i używasz git add .
, to musisz użyć git add -u .
(Zobacz "różnica "git add -A
" i "git add .
"").
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-05-23 11:33:26
To mi pomogło:
#!/bin/bash
git add `git status | grep modified | sed 's/\(.*modified:\s*\)//'`
Albo nawet lepiej:
$ git ls-files --modified | xargs git add
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-01-17 08:41:48
Nie powiedziałeś, co jest aktualnie twoim .gitignore
, ale .gitignore
z następującą zawartością w Twoim katalogu głównym powinno załatwić sprawę.
.metadata
build
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-08-19 16:55:52
Nie wiem, czy to jest funkcja, czy błąd, ale to zadziałało dla nas:
git commit '' -m "Message"
Zwróć uwagę na pustą listę plików". Git interpretuje to tak, aby zatwierdzić wszystkie zmodyfikowane śledzone pliki, nawet jeśli nie są wystawiane, i ignorować pliki nie śledzone.
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-08-16 14:06:15
Tak się złożyło, że próbowałem tego, żeby najpierw zobaczyć listę plików:
git status | grep "modified:" | awk '{print "git add " $2}' > file.sh
cat ./file.sh
Wykonanie:
chmod a+x file.sh
./file.sh
Edit: (Zobacz komentarze) Można to osiągnąć w jednym kroku:
git status | grep modified | awk '{print $2}' | xargs git add && git status
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-09-28 05:35:28