Git Extensions: сквош фиксирует?

чтобы раздавить несколько коммитов, я всегда использовал:

git reset --soft HEAD~<number of commits to squash> && git commit

но мне интересно, есть ли хороший способ сделать это в хорошем клиенте git, таком как расширения git? Было бы здорово, если бы вы могли просто выбрать последовательные коммиты и раздавить их.

3 ответов


вы можете легко сделать это в GE:

  1. mixed reset для фиксации, которую вы хотите раздавить до
  2. этап и фиксация файлов, которые вам требуются
  3. сделал

как сквош: enter image description here


Вы можете легко достичь этого с помощью GitExtensions 2 способами.

первый делать то же самое, но из GUI, который подходит, когда вы не хотите использовать существующие сообщения фиксации коммитов, которые вы смотрите, чтобы раздавить. .

 git reset --soft HEAD~<number of commits to squash>

в браузере истории GitExtensions щелкните правой кнопкой мыши на последнем коммите, который вы хотите сохранить, и выберите 'сбросить ветку сюда'. Затем выберите опцию 'soft'.

 git commit

затем зафиксируйте изменения, которые все еще находятся на стадии.

на второй является "rebase -- interactive":

щелкните правой кнопкой мыши на той же фиксации, описанной выше, и выберите "rebase on". Во всплывающем окне установите флажок "interactive".

затем в Редакторе установите действие фиксации в "сквош". Перед этим прочитайте хорошую документацию по интерактивной ребазе. Это решение идеально подходит, когда вы хотите написать хороший commit сообщение, построенное из сообщений коммитов из коммитов, которые вы сжимаете.


(предполагая, что вы используете Windows)

Да, я верю TortoiseGit можете сделать это. Как предыдущий пользователь TortoiseSVN, я бы рекомендовал его. При просмотре журнала фиксации вы можете сделать следующее:

Combine multiple commits context menu

кроме того, при фиксации с помощью TortoiseGit у вас будет возможность просто изменить ваш предыдущий коммит, так что вы можете сделать это, как вы идете. Он также вытащит последнее сообщение фиксации, когда вы это сделаете это (я очистил свой По соображениям конфиденциальности на скриншоте).

Amend last commit

конечно, я уверен, что вы уже знаете это, но не пытайтесь объединить или изменить коммиты, которые уже нажаты на remote, или ваш следующий толчок потерпит неудачу.

в качестве дополнительного бонуса, вы получите преимущества наложения иконок при просмотре рабочей копии в Проводнике.

Explorer icons