Git: как раздавить несколько коммитов слияния - PullRequest
0 голосов
/ 26 мая 2018

Я работаю над git-репозиторием, который я разветвил из апстрима.Была функция, которую я хотел реализовать, и я создал новую ветку uiTests , внес в нее изменения и сделал запрос на удаление.

PR был там какое-то время, а между тем былинекоторые другие пиарщики слились и возникли конфликты.Я решил их в своем форке, и в конце было два коммита слияния.

Когда я проверяю журнал git, верхняя часть списка выглядит так:

commit 70db4de884d5e4b64ef3a2c903f310c901dd68e2
Merge: ef5dfc2 5b7a827
Author: Padmal
Date:   Sat May 26 18:53:33 2018 +0530

    Merge branch 'CloudyPadmal-uiTest' into uiTests

commit 5b7a827763c35a3605daed6c717004700582eede
Merge: e815867 ef5dfc2
Author: Padmal
Date:   Sat May 26 18:52:52 2018 +0530

    Merge branch 'uiTests' of git://github.com/CloudyPadmal/pslab-android into CloudyPadmal-uiTest

commit ef5dfc2f4af7431b2bc5efa356540bd616669706
Author: Padmal
Date:   Thu May 24 20:06:27 2018 +0530

    test: removed Travis build time consuming UI tests

    removed dummy test files

Итак, я хотелраздавить 70db4de884d5e4b64ef3a2c903f310c901dd68e2 и 5b7a827763c35a3605daed6c717004700582eede на ef5dfc2f4af7431b2bc5efa356540bd616669706 и обновить PR одним коммитом.

Для получения дополнительной информации git log --oneline приводит к следующим результатам:

70db4de Merge branch 'CloudyPadmal-uiTest' into uiTests
5b7a827 Merge branch 'uiTests' of git://github.com/CloudyPadmal/pslab-android into CloudyPadmal-uiTest
ef5dfc2 test: removed Travis build time consuming UI tests

Но когдаЯ попытался git rebase -i HEAD~3, консоль выглядит так:

pick 9b97740 Changed Help and Feedback Activity to Fragment (#882)
pick 7e93db6 chore: Update app version (#922)
pick ca155b6 Added card view for instruments section (#884)
pick e815867 Removed AboutUs activity (#914)
pick ef5dfc2 test: removed Travis build time consuming UI tests

Это не показывает мне коммиты слияния.Для получения дополнительной информации следуйте журналу версий из Android Studio:

git log view

Соблюдаю ли я правильный метод для подавления этих коммитов слияния?Или вообще можно раздавить эти коммиты?Подобные сдавления merge совершают для меня небольшую проблему некоторое время.Большое спасибо за любую помощь и советы!:)

1 Ответ

0 голосов
/ 26 мая 2018

Позвольте мне предположить, что у вас есть ветка репозитория «upstream» под названием «development» и ваша собственная ветка «uiTests».И вы создали PR от fork/uiTests до upstream/development (таким образом, у вас есть 2 пульта: fork и upstream).

После разрешения конфликта в журнале есть беспорядок, но у вас естьпроверил, что ваше рабочее состояние в хорошем состоянии, приложение работает, ваши изменения работают, все в порядке, и все, что вам нужно, это зафиксировать свою работу в один коммит и обновить PR.

Одно простое решение - запустить:

git reset --soft upstream/development

А затем снова зафиксируйте все ваши изменения:

git add .
git commit

После этого у вас будет всего 1 коммит с вашими изменениями поверх новой ветки upstream.

Предполагая, что вы делаете все это в ветке "uiTests", все, что вам нужно для обновления PR, это:

git push -f fork
...