git: cofa wszystkie zmiany w katalogu, w tym nowe pliki
Jak usunąć wszystkie zmiany z katalogu roboczego, w tym nowe Nie śledzone pliki. Wiem, że git checkout -f
tak robi, ale nie usuwa nowych Nie śledzonych plików utworzonych od ostatniego zatwierdzenia.
12 answers
git reset --hard # removes staged and working directory changes
## !! be very careful with these !!
## you may end up deleting what you don't want to
## read comments and manual.
git clean -f -d # remove untracked
git clean -f -x -d # CAUTION: as above but removes ignored files like config.
git clean -fxd :/ # CAUTION: as above, but cleans untracked and ignored files through the entire repo (without :/, the operation affects only the current directory)
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-04-22 11:11:28
Najbezpieczniejsza metoda, z której często korzystam:
git clean -fd
Link do strony git clean
doc:
https://git-scm.com/docs/git-clean
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-14 21:41:10
Dla wszystkich unstaged plików użyj:
git checkout -- .
.
na końcu jest ważne.
Możesz zastąpić .
nazwą podkatalogu, aby wyczyścić tylko określony podkatalog twojego projektu. Problem został rozwiązany w szczególności tutaj .
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:24
Spójrz na git clean
dowództwo.
Git-clean-Remove untracked files from the working tree
Czyści drzewo robocze, rekurencyjnie usuwając pliki, które nie są pod kontrolą wersji, zaczynając od bieżącego katalogu.
Normalnie usuwane są tylko pliki nieznane gitowi, ale jeśli podano opcję-x, to ignorowane pliki są również usuwane. Może to być na przykład przydatne do usunięcia wszystkich produktów kompilacji.
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-07-07 04:09:30
Następujące dzieła:
git add -A .
git stash
git stash drop stash@{0}
Zwróć uwagę, że spowoduje to odrzucenie zarówno Twoich nieakcentowanych, jak i ustawionych zmian lokalnych. Przed uruchomieniem tych poleceń powinieneś zatwierdzić wszystko, co chcesz zachować.
Typowy przypadek użycia: przeniosłeś wiele plików lub katalogów wokół, a następnie chcesz wrócić do pierwotnego stanu.
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:47:36
Możesz to zrobić w dwóch krokach:
- Przywróć zmodyfikowane pliki:
git checkout -f
- Usuń Nie śledzone Pliki:
git clean -fd
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-12-14 15:14:07
Myślałem, że to (Ostrzeżenie: pobędzie wymazać wszystko )
$ git reset --hard HEAD
$ git clean -fd
reset
aby cofnąć zmiany. clean
, aby usunąć wszelkie Nie śledzone F Ile i d irectories.
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 11:11:54
git reset --hard origin/{branchName}
Usunie wszystkie Nie śledzone pliki.
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-17 17:28:13
Alternatywnym rozwiązaniem jest zatwierdzenie zmian, a następnie pozbycie się tych zmian. Na początku nie przynosi to natychmiastowych korzyści, ale otwiera możliwość zatwierdzania w kawałkach i tworzenia znacznika git dla kopii zapasowej.
Możesz to zrobić na bieżącej gałęzi, w następujący sposób:
git add (-A) .
git commit -m"DISCARD: Temporary local changes"
git tag archive/local-changes-2015-08-01 # optional
git revert HEAD
git reset HEAD^^
Albo możesz to zrobić na odłączonej głowie. (zakładając, że zaczynasz od branchname branch):
git checkout --detach HEAD
git add (-A) .
git commit -m"DISCARD: Temporary local changes"
git tag archive/local-changes-2015-08-01 # optional
git checkout BRANCHNAME
Jednak zwykle robię commit w kawałkach, a następnie nazywam niektóre lub wszystkie commity "Odrzuć: ...". Następnie użyj interaktywnej rebase, aby usunąć złe commity i zachować dobre.
git add -p # Add changes in chunks.
git commit -m"DISCARD: Some temporary changes for debugging"
git add -p # Add more stuff.
git commit -m"Docblock improvements"
git tag archive/local-changes-2015-08-01
git rebase -i (commit id) # rebase on the commit id before the changes.
# Remove the commits that say "DISCARD".
Jest to bardziej gadatliwe, ale pozwala dokładnie sprawdzić, które zmiany chcesz odrzucić.
The git lol
oraz git lola
skróty były bardzo pomocne w tym przepływie pracy.
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-01 20:12:28
Dla konkretnego folderu użyłem:
git checkout -- FolderToClean/*
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-26 21:19:36
git clean -i
najpierw pokaże elementy do usunięcia i kontynuować po potwierdzeniu. Uważam to za przydatne, gdy mamy do czynienia z ważnymi plikami, które nie powinny być przypadkowo usunięte.
Zobacz git help clean
Aby uzyskać więcej informacji, w tym kilka innych przydatnych opcji.
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-10-05 10:18:07
Jeśli chcesz odrzucić wszystkie zmiany, możesz użyć jednej z ważnych opcji w aliasie w .gitconfig
. Na przykład:
[alias]
discard = "!f() { git add . && git stash && git stash drop stash@{0}; }; f"
Użycie: git discard
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-10-25 20:04:44