Комбинат 2 git коммитов, когда был нажат - PullRequest
0 голосов
/ 12 октября 2018

Как мне объединить 2 коммита в один, когда предыдущий уже был выдвинут?

Шаг 1

git add file.txt
git commit
git push

Шаг 2

git add file.txt
git commit 

Ответы [ 4 ]

0 голосов
/ 12 октября 2018

Следуйте этим командам по порядку.

git add .

git commit --amend

git push origin <branch> -f

0 голосов
/ 12 октября 2018

Вы можете сделать это, используя перебазирование.Сквош последние два коммита с git rebase -i HEAD~2.Затем сделайте принудительный толчок с помощью git push --force**.

** Обычно вы предпочитаете --force-with-lease над --force.Если бы кто-то другой нажал на ветку, которую вы нажимаете, --force перезапишет свои изменения.--force-with-lease вызовет принудительный толчок, только если никто не подтолкнет к этой ветви.

0 голосов
/ 12 октября 2018
git add file.txt
git commit --amend
git push --force

Применяются обычные предупреждения о --force.

0 голосов
/ 12 октября 2018

Попробуйте:

git reset --soft HEAD~2
git commit -m "Your new message"
git push --force

Что это делает:

  1. Сброс вашей текущей ветви (перемещается HEAD) до антивендуменной фиксации (той, что перед предпоследней, представленной HEAD~2), но оставляет индекс и рабочее дерево.
  2. Это позволяет повторно внести эти изменения и зафиксировать их в новом коммите.
  3. --force позволяет выдвинуть этот новыйсовершить и принудительно переопределить.

ПРИМЕЧАНИЕ

Поскольку другие прокомментировали ваш первоначальный вопрос, имейте в виду, что --force, скорее всего, будет раздражать других людей, которые уже потянулипредыдущая версия этой ветки.Вы можете «сжать» эти изменения в новой ветке и опубликовать ее отдельно:

git reset --soft HEAD~2
git checkout -b my-new-clean-branch
git commit -m "Your new message"
git push -u origin HEAD

Таким образом, вам не нужно --force ничего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...