Git - как сгенерировать фиксацию из git diff

Я работаю в ветке main, и есть некоторые несоответствия в main и dev. Я могу увидеть разницу в определенной папке, используя,

git diff main..dev Code/Folder/*

Теперь я хочу переместить все изменения, отображаемые различием внутри Код / Папка / *, в новую фиксацию в текущей ветке main.

Как я могу это сделать?

Попробуйте git diff main.dev Code/Folder/* | git apply, а затем git add <files> && git commit.

ElpieKay 10.09.2018 09:56

Если вы хотите применить различие между main и dev, к основному, тогда не будет ли это создавать те же файлы, что и просто получение копии соответствующих файлов из dev?

Lasse V. Karlsen 10.09.2018 10:53
1
2
87
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете использовать форму git checkout <branch> <path>, например:

git checkout main
git checkout dev Code/Folder
# ... you may fix unwanted changes here ...
git commit -m "import Code/Folder from dev branch"

Он перезапишет <path> содержимым <branch> без переключения текущей ветви.

Ответ принят как подходящий

Код ниже работает нормально (добавление изменений в main из dev),

git checkout main
git diff main..dev Code/Folder/* | git apply
git add *
git commit -s -m "Adding diffs to main from dev for Code/Folder/*"

Спасибо, что поделились здесь своим решением, если возможно, вы можете принять свое решение в качестве ответа, чтобы оно также могло помочь другим членам сообщества. Хорошего дня:)

Jack Zhai-MSFT 24.09.2018 05:20

Другие вопросы по теме