Я знаю, що StackOverflow не є місцем для відповідей, що базуються на думках, але я дійсно маю хорошу думку про те, коли відкладати зміни зі сховищем.
Ви не хочете здійснювати експериментальні зміни
Коли ви вносите зміни у робочу область / робоче дерево, якщо вам потрібно виконати будь-які операції на базі гілок, такі як злиття, натискання, витягнення або витягнення, ви повинні знаходитись у точці точки збору. Тож якщо у вас є зміни в робочій області, вам потрібно зробити їх. Але що робити, якщо ви не хочете їх виконувати? Що робити, якщо вони експериментальні? Щось, чого ви не хочете, щоб частина вашої історії зобов’язань? Щось, чого ви не хочете, щоб інші бачили, коли ви натискаєте на GitHub?
Ви не хочете втрачати локальні зміни з допомогою жорсткого скидання
У такому випадку ви можете зробити жорсткий скидання. Але якщо зробити жорсткий перезавантаження, ви втратите все місцеве робоче дерево тому що все буде перезаписано там, де воно було в момент останнього введення, і ви втратите всі свої зміни.
Отже, що стосується відповіді "коли слід приховувати", відповідь полягає в тому, коли вам потрібно повернутися до чистої точки фіксації із синхронізованим робочим деревом / індексом / фіксацією, але ви не хочете втрачати свої локальні зміни в процес. Просто відкладіть свої зміни в сховищі, і ви добре.
І як тільки ви зробите свою сховище, а потім об'єднаєте, потягнете або висунете, ви можете просто приховати поп або застосувати, і ви повернетесь туди, звідки почали.
Git stash та GitHub
GitHub постійно додає нові функції, але на сьогоднішній день існує спосіб зберегти сховище там. Знову ж таки, ідея приховування полягає в тому, що це місцевий та приватний характер. Ніхто інший не може зазирнути у вашу скриньку без фізичного доступу до вашої робочої станції. Так само, як git reflog є приватним, а журнал git є загальнодоступним. Це, мабуть, не було б приватним, якби його підштовхнули до GitHub.
Один трюк може бути різним у вашій робочій області, перевірити діф у своєму сховищі git, здійснити компіляцію та натиснути. Тоді ви можете зробити тягнути додому, дістати різницю, а потім розмотати її. Але це досить безладний спосіб досягти цих результатів.
git diff > git-dif-file.diff