Git: создать ветку.Передает кучу.Вернуться в главную ветку, хочет объединить только определенные коммиты - PullRequest
4 голосов
/ 15 сентября 2010

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

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

Как мне это сделать?

Ответы [ 2 ]

5 голосов
/ 15 сентября 2010

Вы можете перебазировать набор коммитов на вашу основную ветку:

Если у вас есть это:

master: A--B--C--D
                  \
fixing_css:        E--F--G--H

И вы хотите это:

master: A--B--C--D--F--G--H

Затем выполните эту команду из ветви fixing_css:

git rebase --onto master E fixing_css

(где E - это SHA первого коммита в ветви)

Перебазировкаmsgstr "команда берет набор коммитов и помещает их на новую" базу ".В этом случае вы говорите "взять набор коммитов, который идет после E и идет до конца fixing_css, и поместить их поверх master" .

1 голос
/ 15 сентября 2010

Помимо обычной перебазировки, вы также можете использовать интерактивную перебазировку, чтобы избавиться от любых изменений, которые вам не нужны:

git rebase -i master

Появится редактор со списком всех ваших коммитов.Если вы хотите удалить коммит, просто удалите строку в вашем редакторе перед сохранением файла.Таким образом, вы можете удалить столько коммитов, сколько вам нужно, перед слиянием.

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