Избавьтесь от лишних коммитов слияния по теме / ветке функций - PullRequest
0 голосов
/ 11 октября 2018

Допустим, мы создаем ветку тем / функций и работаем над ней в течение недели.Чтобы идти в ногу с веткой интеграции, мы могли бы использовать git rebase, но ради вопроса давайте использовать git merge.Таким образом, мы создаем коммиты слияния в нашей ветви функций - по мере слияния ветви интеграции с веткой функций.

Я считаю, что эти коммиты слияния в основном бесполезны в конце дня.Есть ли хороший способ избавиться от этих коммитов слияния при слиянии ветви функции с веткой интеграции, когда вы закончите с этой функцией?Я предполагаю, что сжатие ветви в один коммит - это один из способов сделать это?

Ответы [ 3 ]

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

Tymtam прав, но если вы хотите сделать это вручную, вы можете сделать:

git checkout a

git merge b

git reset --soft origin/a

git add -A

git commit -m "Single commit all changes"
0 голосов
/ 11 октября 2018

Я считаю, что эти коммиты слияния в основном бесполезны в конце дня.Есть ли хороший способ избавиться от этих коммитов слияния

Сообщите git, какую ветку вы отслеживаете, и ваша команда представляет собой простой git rebase.

Make wizzo trackdev с например git branch -t wizzo dev, немного поработать над dev, поработать над wizzo, объединить, поработать больше над обоими, вы получите что-то вроде этого:

* f7b551f (dev) 4dev
| * 982b0c7 (HEAD -> wizzo) 3wiz
| *   5de6750 Merge branch 'dev' into wizzo
| |\  
| |/  
|/|   
* | 2e8c7ec 1dev
| * a320e00 2wiz
|/  
* c823194 Init

После простого git rebase:

* 096cbfc (HEAD -> wizzo) 3wiz
* 8e5d6c5 2wiz
* f7b551f (dev) 4dev
* 2e8c7ec 1dev
* c823194 Init

git rerere создан для того, чтобы сделать этот рабочий процесс максимально безболезненным, он помнит, как вы разрешили конфликты слияния, поэтому, когда вы в конечном итоге сделаете откат назад, как сейчас, через месяцдаже если ты не помнишь, что сделал, Git делает.

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

Да, если вы слились, а не были перебазированы, тогда «сквош» - это способ «удалить» коммит слияния.

Хотя я делаю это не всегда, особенно когда функция велика и для слияния необходимо разрешение конфликта,

...