Изменение штампа при сохранении изменений в рабочем каталоге в Git

Есть ли команда git stash, которая задерживает ваши изменения, но также сохраняет их в рабочем каталоге? Итак, в основном a git stash; git stash apply за один шаг?

Ответ 1

Для чего это стоит, другой способ сделать это - выполнить изменения, которые вы хотите сохранить, а затем спрятать все, используя --keep-index:

$ git add modified-file.txt
$ git stash save --keep-index

В приведенных выше командах будут сохранены все, включая modified-file.txt, но он также оставит этот файл в рабочем каталоге.

Из официальной документации ядра Linux Git для git stash:

Если используется опция --keep-index, все изменения, уже добавленные в индекс, остаются нетронутыми.

Ответ 2

git stash, а затем git stash apply (git stash && git stash apply) будет спрятать файлы и сразу же применить табуляцию. Так что в конце концов вы будете иметь свои изменения в тайнике и в рабочем директоре. Вы можете создать псевдоним, если хотите его в одной части. Просто поставьте что-то вроде этого ~/.gitconfig:

[alias]
    sta = "!git stash && git stash apply"

Ответ 3

Небольшое усиление ответа, которое в практическом плане может использовать.

$ git add modified-file.txt  
(OR $ git add .    ---- for all modified file)
$ git stash save --keep-index "Your Comment"

Ответ 4

Там трюк может помочь вам, а не спрятать, но FWIW:

git add -A
git commit -m "this is what 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)

Итак, теперь у вас есть привязанный тэг с фиксацией, в любом случае невозможно сделать git stash pop, но вы можете делать такие вещи, как создание патчей или перезагрузка файлов и т.д. оттуда, ваши рабочие файлы dir также остаются нетронутыми КСТАТИ.