Як поєднати групу локальних комітів до одного натискання в IDEA?


85

В IDEA я намагаюся просунути деякі комміти.

У мене є вимога, щоб на віддаленому сервері це виглядало як одна дія.

Я натискаю, щоб натиснути, і бачу наступне вікно введіть тут опис зображення

Я очікував побачити тут сквош, але не бачу.

Будь ласка, допоможи мені.


2
Не можу дати пораду IDEA, але стиснення є частиною інтерактивної бази даних або об’єднання, а не коміту. Спробуйте заглянути туди.
musiKk

Відповіді:


115

Ви можете зробити це за допомогою rebase. Перейдіть до VCS / Git / Rebase . Потім виберіть Інтерактивна опція. Він покаже вам список комітів, де ви зможете вибрати, які з них потрібно втиснути.

Після натискання кнопки Почати перебазування він запропонує повідомлення про коміт для здушеного коміту. Після цього ви можете натиснути на ваш здушений коміт за допомогою діалогового вікна push.

Діалогове вікно сквошу

Більше інформації про перебазування в IntelliJ можна знайти тут .


9
також може бути корисно прочитати цю статтю Git Tools - Історія переписування, щоб знати, що вводити в поле "Онто" діалогу "Перебазувати гілку": напр., g. HEAD~3можна використовувати для вибору останніх 3 комітів .
TmTron

коли ви стискаєте купу коммітів разом, чи не втрачаються окремі деталі кожного з цих комітетів? це просто виглядає як одна велика комісія?
ycomp

@ycomp Так, інтерактивне перебазування переписує історію, тому окремі зім'яті коміти втрачаються, а на їх місці створюється новий єдиний.
Богуслав Бургардт

Дякую, ти можеш скасувати сквош?
ycomp

@ycomp Я ніколи цього не робив, але це повинно бути можливим. Будь ласка, зверніться до наступних публікацій SO: stackoverflow.com/q/10260151/1291150 , stackoverflow.com/q/134882/1291150
Богуслав Бургардт

33

Є новий спосіб:

Контроль версій -> Журнал -> Клацніть правою кнопкою миші на коміті ->, Interactively rebase from hereа потім Ви зможете обрати / зменшити решту комітів.


1
Проблема цього підходу полягає в тому, що немає можливості вибрати "Сквош" для кількох комітів, і це стає нудно робити це по одному.
Дмитро Сердюк

4
@DmitrySerdiuk, ви можете натиснути клавішу Shift, щоб вибрати коміти, які ви хочете стиснути, а потім клацнути правою кнопкою миші -> вибрати сквош.
Aarjav

1
@Aarjav О, БОЖЕ МОЙ, це саме я думав, що цього немає! Немає підказок щодо меню правої кнопки миші у діалоговому вікні.
o_nix

21

Для мене найпростіший спосіб роботи з intellij:

  • Перейдіть на Logвкладку та виберіть коміт, з якого ви хочете розчавити
  • Клацніть правою кнопкою миші та виберіть Reset Branch to this commit
  • Виберіть mixinпараметри, щоб зберегти зміни від коміту
  • Зафіксуйте свої зміни та не забудьте перевірити Amend commitпараметр

1
Це справді найпростіший спосіб, і я вважаю, що це найменш напружений і схильний до помилок.
davrog10

2
Я вважаю, що на кроці 3 було б краще вибрати Softваріант замість того, Mixedщоб усі зміни вже були індексовані для коміту.
provisota
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.