Обновление 2:
я не уверен, почему люди жалуются на этот ответ, похоже, он отлично работает со мной, для неотслеживаемых файлов вы можете добавить -u
флаг
Полная команда становится git stash --keep-index -u
А вот отрывок из git-stash
справки
Если используется опция --keep-index, все изменения, уже добавленные в индекс, остаются без изменений.
Если используется параметр --include-untracked, все неотслеживаемые файлы также сохраняются, а затем очищаются с помощью git clean, оставляя рабочий каталог в очень чистом состоянии. Если вместо этого используется параметр --all, игнорируемые файлы сохраняются и очищаются в дополнение к неотслеживаемым файлам.
А вот гифка того, как это выглядит:
Обновить:
Несмотря на то, что это выбранный ответ, многие отметили, что [ответ ниже] (https://stackoverflow.com/a/34681302/292408) является правильным, я рекомендую проверить его.
Я снова проверил свой ответ сегодня (31.01.2020) на версии git 2.24.0
, и я все еще считаю, что он правильный, я добавил небольшую заметку выше о неотслеживаемых файлах. Если вы считаете, что это не работает, укажите также свою версию git.
Старый ответ :
если --keep-index
опция используется, все изменения, уже добавленные в индекс, остаются без изменений:
git stash --keep-index
Из документацииgit-stash
:
Тестирование частичных коммитов
Вы можете использовать, git stash save --keep-index
когда хотите сделать две или более фиксации изменений в рабочем дереве и хотите протестировать каждое изменение перед фиксацией:
# ... hack hack hack ...
$ git add --patch foo # add just first part to the index
$ git stash save --keep-index # save all other changes to the stash
$ edit/build/test first part
$ git commit -m 'First part' # commit fully tested change
$ git stash pop # prepare to work on all other changes
# ... repeat above five steps until one commit remains ...
$ edit/build/test remaining parts
$ git commit foo -m 'Remaining parts'
Но, если вы просто хотите визуально проверить только поэтапные изменения, вы можете попробовать difftool
:
git difftool --cached
-k
вариант), либо неудобны в использовании.