Czy istnieje polecenie git stash
, które przechowuje wprowadzone zmiany, ale zachowuje je również w katalogu roboczym? Więc w zasadzie git stash; git stash apply
w jednym kroku?Przechowywanie zmian przy zachowaniu zmian w katalogu roboczym w Git
Odpowiedz
Na co warto, innym sposobem, aby to zrobić, to etap zmian, które chcesz zachować, a następnie schować wszystko używając --keep-index
:
$ git add modified-file.txt
$ git stash save --keep-index
powyższe komendy przechowują wszystko, łącznie z modified-file.txt
, ale pozostawia to także w twoim katalogu roboczym.
Z official Linux Kernel Git documentation for git stash
:
Jeśli opcja
--keep-index
jest używany, wszystkie zmiany już dodane do indeksu pozostają nienaruszone.
git stash
, a następnie (git stash && git stash apply
) spowoduje ukrycie plików i natychmiastowe zastosowanie skrytki. Więc w końcu będziesz miał swoje zmiany w skrytce iw pracy reż. Możesz utworzyć alias, jeśli chcesz go w jednym kawałku. Wystarczy umieścić coś takiego ~/.gitconfig
:
[alias]
sta = "!git stash && git stash apply"
Jest trik może pomóc, nie ukryta”rzecz, ale FWIW:
git add -A
git commit -m "this is what's called stashing" (create new stash commit)
git tag stash (mark the commit with 'stash' tag)
git reset HEAD~ (Now go back to where you've left with your working dir intact)
i tak teraz masz popełnić znakowanych zapas do Państwa dyspozycji, to nie jest możliwe, aby zrobić git stash pop
i tak ale ty może robić rzeczy takie jak tworzenie łatek lub resetowanie plików itp. stamtąd twoje robocze pliki dir również pozostaną nietknięte BTW.
Niewielkie ulepszenie odpowiedzi, które z praktycznego punktu widzenia może być użyteczne.
$ git add modified-file.txt
(OR $ git add . ---- for all modified file)
$ git stash save --keep-index "Your Comment"
- 1. Oglądanie katalogu zmian w Javie
- 2. Monitorowanie katalogu zmian
- 3. Słuchanie zmian w Git Repo
- 4. Testowanie niezatwierdzonych zmian w rtęci
- 5. Uzyskaj bieżący identyfikator zestawu zmian w obszarze roboczym dla TFS
- 6. Git: Scalanie, ale nadpisywanie zmian
- 7. Zobacz diff inscenizowanych zmian w git
- 8. Wyciąganie zmian z rodzica widelca w Git
- 9. Prowadzenie lokalnych zmian w repo git
- 10. Git nie wykrywa zmian w pliku
- 11. Wprowadzanie bieżących zmian w nowym dziale Git
- 12. Git: scalanie tylko zmian dokonanych w oddziale
- 13. Cofanie zmian dom w JS
- 14. Jak utworzyć nową gałąź git ze zmian, które mam w drzewie roboczym?
- 15. Badanie zestawu zmian w HG
- 16. Jak monitorować repozytorium git dla zmian?
- 17. Jak pozbyć się zestawu zmian w Hg?
- 18. Słuchaj zmian w Redis?
- 19. Replikowanie zmian w wykazie
- 20. Wykrywanie zmian w NSUserDefaults
- 21. Git: uzyskiwanie zmian z innego oddziału
- 22. Git log nie wyświetla zmian modułu podległego
- 23. Prawdopodobnie stracił kilka zmian za pośrednictwem git
- 24. Git dodając: „bez zmian” pliki do etapu
- 25. Przebudowywanie wszystkich zmian w historii git po filtrze filtracyjnym
- 26. Przepytanie pętli nieskończonej Hudson dla zmian w repozytorium Git?
- 27. .gitignore nie zatrzymuje zmian śledzonych w plikach
- 28. cofanie zmian oczekujących w programie Visual Studio zawiesza się przy dużej liczbie zmian
- 29. Przechowywanie historii zmian strony. Trochę podobnie jak robi dla korekt
- 30. Wprowadzanie niezatwierdzonych zmian w Master do nowego oddziału przez Git
+1, jeśli powiesz mi, jak utworzyć alias – anthropomorphic
, jaka jest różnica między 'git stash; git stash apply' i 'git stash && git stash apply'? – anthropomorphic
Sądzę, że różnica polega na tym, że ['&&' uruchamia drugie polecenie tylko wtedy, gdy pierwszy zwrócony kod statusu zerowego] (http://linux-training.be/files/books/html/fun/ch11s04.html). – madhead