Працюючи над виправленням або функцією, я іноді натрапляю на інші крихітні проблеми, які за лічені секунди можна вдосконалити. Коли я роблю їх негайно, а потім здійснюю готову функцію / виправлення, комісія включає більше ніж одне. Наприклад "add feature X and code clean up"
або "fix bug X and improved logging"
. Було б краще розділити це на два коміти. У випадку, якщо дві зміни відбулися в одному файлі, я не можу просто додати один файл, зробити фіксацію, додати інший і знову зробити знову. Тому я бачу такі три варіанти:
Навмисно забувайте про непов'язані речі, працюючи над чимось.
Скопіюйте файл з двома змінами, відновіть його, включіть одну зміну, введіть, включіть іншу зміну, повторіть.
Не змінюйте дрібні непов'язані речі, але додайте їх до списку todo і робіть їх пізніше.
Мені не дуже подобаються всі три варіанти з наступних причин:
Якість коду може постраждати, якщо не усунути невеликих проблем. І мені погано, якщо я свідомо пропускаю шанс щось покращити без особливих зусиль.
Це збільшує ручну роботу та схильне до помилок.
Це добре для не дуже крихітних тодосів, але додавання крихітного елемента до списку тодо і перегляд його пізніше часто займає набагато більше часу, ніж просто їх виправлення негайно.
Як ви справляєтеся з такими ситуаціями?
git add -p
багато, що дозволяє інтерактивно вибирати частини файлів, які я хочу зробити. Якщо прибирання досить окреме, це зробити нескладно. Якщо розділення складніше, я здійснюю стан на тимчасовій гілці, а потім вручну додаю зміни до моєї фактичної гілки, поки не буде різниці у тимчасовій гілці. Це вимагає набагато більше роботи, але дозволяє перевірити, чи працює кожен комітет самостійно.