2013-07-24 13 views

Odpowiedz

67

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.

27

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" 
+0

+1, jeśli powiesz mi, jak utworzyć alias – anthropomorphic

+0

, jaka jest różnica między 'git stash; git stash apply' i 'git stash && git stash apply'? – anthropomorphic

+8

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

2

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.

3

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" 
Powiązane problemy