Редагування будь-якого коміту
Одруківка — в коміті тритижневої давнини. Звичні ліки — інтерактивний ребейз: зупинитися на коміті, виправити, продовжити, молитися. Ліки Gitcito: правий клік по коміту, Редагувати цей коміт, змінили текст, готово. Кнопка з пером на панелі деталей коміта відкриває той самий редактор.

Що воно робить
Виберіть будь-який коміт, що є предком HEAD — з лінійною історією чи без.
Діалог показує його файли та повідомлення; редагуйте будь-що з двох. Далі
відбуваються дві речі:
- Попередній перегляд каскаду відтворює заново кожен коміт вище
редагованого в пам’яті (ланцюжок cherry-pick через
merge-tree— без чекауту, без робочого дерева, без посилань). Кожен нащадок підсвічується зеленим або червоним, тож ви ще до того, як щось зрушить, знаєте, чи правка проходить чисто, чи зіштовхується з пізнішою зміною. - Переписати історію робить це по-справжньому: той самий ланцюжок
будується plumbing-командами, потім гілка переїжджає через
reset --keep— ваші незакомічені зміни переносяться, або reset переривається і нічого не сталося. Спершу робиться знімок-вартовий, а скасування повертає старий ланцюжок.
Авторство й дати кожного відтвореного коміту зберігаються; змінюються лише хеші — саме це й означає переписування історії.
Злиття в діапазоні

Злиття між комітом і HEAD більше не вимикає редагування. Каскад відтворює
злиття, накладаючи його записаний результат — дерево, яке злиття справді
закомітило, разом із розв’язаннями конфліктів — на переписаного батька, тож
розв’язання, зроблені кимось вручну, переживають переписування дослівно. Без
rerere, без повторного злиття, без робочого дерева: той самий plumbing у
пам’яті, що й у решті каскаду, і обидва вказівники на батьків зберігаються.
Бічна гілка, яка теж містить редагований коміт, переписується й
перенацілюється; та, що його не містить, зберігає свою ідентичність
недоторканою. Банер у діалозі каже, скільки злиттів несе діапазон, а
кроки-злиття показують у попередньому перегляді іконку злиття.
Чесне застереження: відтворене злиття рівно настільки добре, наскільки добрий його записаний результат. Якщо ваша правка зіштовхується з рядками, які розв’язало саме злиття, попередній перегляд червоніє точно так само, як будь-який інший конфліктний крок — ніщо не вгадується.
Коли каскад конфліктує
Пізніший коміт торкнувся тих самих рядків, які ви редагуєте. Попередній перегляд позначає цей коміт червоним разом із конфліктними файлами, і переписування відмовляється запускатися — ніщо ніколи не застосовується наполовину. Або редагуйте інакше, або беріть конфлікт лобом через інтерактивний ребейз.
Обмеження
- Коміт має бути предком
HEAD. Коміт на невлитій бічній гілці не має шляху до вашої поточної гілки, яким його можна відтворити. - Бінарні файли та файли понад 2 МБ показуються, але не редагуються.
- Коміт, що вже є на віддаленому репозиторії, редагувати можна, але наступний пуш доведеться робити як force push — діалог попереджає, перш ніж ви на це погодитеся.
- Файли, видалені в коміті, редагувати не можна (немає вмісту для редагування).
Див. також: Інтерактивний ребейз · Відновлення та рефлог · Поглинання