Как мне объединить коммиты после того, как я уже нажал на Git? - PullRequest
0 голосов
/ 28 августа 2011

Я новичок в git, я внес некоторые изменения, git сказал мне, что мне нужно сначала извлечь, поэтому я извлек, но мой редактор не отображал измененные версии, поэтому я снова зафиксировал конфликты, разрешил конфликты и совершено снова. Теперь у меня есть 3 коммитов! (хотя я думаю, что первого не должно быть там)

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

Не могли бы вы дать пошаговое объяснение? Я использовал svn и cvs раньше, но я новичок в git

Ответы [ 2 ]

0 голосов
/ 28 августа 2011

Если я правильно понимаю ваш вопрос, это должно делать то, что вы хотите

Вы можете раздавить все три из этих коммитов вместе с git rebase -i HEAD~3.Это в основном избавит от ваших плохих коммитов, и содержимое вашего последнего будет финальным контентом.

Когда вы запустите команду, появится редакторЗаменить pick in the second and third line with сквош.Затем вам нужно будет нажать еще раз с флагом -f.

Это сработает, если они являются вашими последними тремя коммитами.Если они отстают от этого.Вам нужно будет откатиться дальше назад и поставить squash только на те два коммита, которые вы хотите раздавить.

0 голосов
/ 28 августа 2011

Ситуация, которую вы описали, кажется маловероятной, поскольку попытка фиксации во время конфликта приводит к следующей ошибке:

fatal: 'commit' is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>' as
appropriate to mark resolution and make a commit, or use 'git commit -a'.

И если вы не можете зафиксировать конфликт, тогда запуск git push не будетизменить.

Вы можете запустить следующую команду, чтобы увидеть, какие коммиты действительно имели место

git log --patch --color
...