Я знаю, что StackOverflow - не место для ответов, основанных на мнениях, но на самом деле у меня есть хорошее мнение о том, когда откладывать изменения в тайник.
Вы не хотите вносить экспериментальные изменения
Когда вы вносите изменения в свое рабочее пространство / рабочее дерево, если вам нужно выполнить какие-либо операции на основе ветвей, такие как слияние, push, выборка или извлечение, вы должны быть в чистой точке фиксации. Поэтому, если у вас есть изменения в рабочем пространстве, вам необходимо их зафиксировать. Но что, если вы не хотите их совершать? Что, если они экспериментальные? Что-то, что вам не нужно в истории коммитов? Что-то, чего вы не хотите, чтобы другие видели, когда вы нажимаете на GitHub?
Вы не хотите потерять локальные изменения с помощью аппаратного сброса
В этом случае вы можете сделать полный сброс. Но если вы выполните полный сброс, вы потеряете все изменения в локальном рабочем дереве, потому что все будет перезаписано на то место, где оно было во время последней фиксации, и вы потеряете все свои изменения.
Итак, что касается ответа «когда вы должны спрятать», то ответ заключается в том, что вам нужно вернуться к чистой точке фиксации с синхронизированным рабочим деревом / индексом / фиксацией, но вы не хотите потерять свои локальные изменения в процесс. Просто отложите свои изменения в тайник, и все будет хорошо.
И как только вы сделали свой тайник, а затем слили, потянули или нажали, вы можете просто припрятать pop или применить и вы вернетесь туда, откуда начали.
Git stash и GitHub
GitHub постоянно добавляет новые функции, но на данный момент есть способ сохранить там тайник. Опять же, идея тайника заключается в том, что он локальный и частный. Никто другой не сможет заглянуть в ваш тайник без физического доступа к вашей рабочей станции. Точно так же, как git reflog является закрытым, а журнал git является общедоступным. Вероятно, это не было бы приватным, если бы оно было перенесено на GitHub.
Один из приемов может заключаться в том, чтобы выполнить различие в вашей рабочей области, проверить разницу в вашем репозитории git, зафиксировать и затем нажать. Затем вы можете сделать тягу из дома, получить дифференциал и затем размотать его. Но это довольно грязный способ добиться таких результатов.
git diff > git-dif-file.diff