Какая разница между git сохранением закладок и git нажатием кнопки?

Когда следует использовать git stash save вместо git stash push и наоборот?

Ответ 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", но в будущем их может быть больше.