Когда следует использовать git stash save
вместо git stash push
и наоборот?
Какая разница между git сохранением закладок и git нажатием кнопки?
Ответ 1
git stash save
принимает один необязательный аргумент - сообщение о пробеле.
git stash push
принимает сообщение с опцией -m
и принимает список файлов, которые нужно хранить в качестве аргументов.
Ответ 2
Просто чтобы быть ясным, начиная с Git 2.15/2.16 (Q1 2018), git stash save
устарела в пользу git stash push
(хотя git stash save
все еще доступен в настоящее время).
См. commit c0c0c82, commit fd2ebf1, commit db37745 (22 октября 2017) автором: Томас Гаммерер (tgummerer
).
.
(Merged by Junio C Hamano -- [TG44] -- in commit 40f1293, 06 Nov 2017)
stash
: пометка "git stash save
" устарела на странице руководства"
git stash push
" исправляет историческую бородавку в интерфейсе "git stash save
".
Поскольку "git stash push
" обладает всеми функциями "git stash save
", с более приятным и согласованным пользовательским интерфейсом не рекомендуется "git stash save
".
stash
: убрать теперь справку по лишним для "stash push
"Благодаря интерфейсу
git stash save
пользователи легко могли попробуйте добавить сообщение, которое будет начинаться с "-
", которое "git stash save
" будет интерпретироваться как аргумент командной строки и потерпит неудачу.
Для этого случая мы добавили дополнительную справку о том, как создать stash с сообщением, начинающимся с "-
".Для '
stash push
' сообщения передаются с флагом-m
, чтобы избежать этой потенциальной ловушки.
Теперь только пути, начинающиеся с "-
", должны отличаться от параметров командной строки с помощью "-- --<pathspec>
".
Это довольно часто встречается в интерфейсе командной строки git, и мы не пытаемся угадать, что пользователи хотели в других случаях.Поскольку этот способ передачи спецификаций пути довольно распространен в других командах git, и мы не предоставляем там никакой дополнительной помощи, сделайте то же самое в сообщении об ошибке для '
git stash push
'.
В Git 2.18 (Q2 2018) завершение командной строки (в contrib/
) научили, что "git stash save
" устарело ("git stash push
" является предпочтительным написанием в новом мире) и не предлагает его как возможно
Кандидат на завершение, когда "git stash push
" может быть.
См. commit df70b19, commit 0eb5a4f (19 апреля 2018) от Томаса Гуммерера (tgummerer
).
(Merged by Junio C Hamano -- [TG428] -- in commit 79d92b1, 08 May 2018)
completion
: сделатьstash -p
и псевдоним дляstash push -p
Мы определяем "
git stash -p
" как псевдоним для "git stash push -p
" в страница руководства. Сделайте то же самое в сценарии завершения, так что все параметры, которые может быть дано для 'git stash push
' завершаются, когда пользователь используя 'git stash -p --<tab>
'.
В настоящее время единственным дополнительным параметром, который получает пользователь, является "--message
", но в будущем их может быть больше.