объединяя некоторые различия, но не все - PullRequest
2 голосов
/ 04 апреля 2011
git version 1.7.1

У меня есть 2 ветви, т.е. branch1 и branch2.

Я занимаюсь разработкой для branch1 и branch2.Итак, обе ветви теперь разные.

Однако я хочу объединить branch1 в branch2.Но в чем я не уверен, так это в том, что я хочу объединить только некоторые изменения кода.Я написал некоторые функции в branch1, и я просто хочу объединить эти функции и ничего больше.

Возможно ли это с помощью git?

Ответы [ 2 ]

2 голосов
/ 04 апреля 2011

Команда cherry-pick для получения отдельных коммитов из одной ветви. Затем используйте метод, показанный здесь, чтобы разделить коммит на отдельные коммиты.

Используйте git rebase -i, чтобы получить исходный коммит для его редактирования.Затем git reset HEAD^ для выборочного возврата изменений, затем git commit для фиксации этого бита в качестве нового коммита в истории.

или

с использованием git add --patch или, возможно, git add --interactive, которыйпозволяет добавлять только части фрагмента, если вы хотите разделить различные изменения в отдельном файле

я надеюсь, что это поможет вам

2 голосов
/ 04 апреля 2011

Причины Git в виде моментального снимка кодов, представляющих полное содержание проекта all , фиксируются после коммитов.

Это означает, что вы можете легко cherry-pick один или несколько коммитов из одной ветви в другую (как предложено KingCrunch в комментариях)

Но вы не можете объединить некоторые файлы (и не другие) в один коммит.
Вы можете попробовать rebase --interactive branch1~x, чтобы отредактировать последние x коммитов с соответствующими изменениями, разделив эти коммиты на 2:

  • один с общими изменениями,
  • другой с изменениями, которые вы хотите объединить.

Затем вы можете переупорядочить эти вторые наборы коммитов и перебазировать их или подбирать их поверх branch2.

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