Git обратное слияние поддерева - PullRequest
0 голосов
/ 26 августа 2010

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

В Subversion вы можете сделать это:

$ cd /workingcopy/some/subtree
$ svn merge -r802:801 .

И это вычисляет обратную разницу между ревизиями 801 и 802 и применяется только к текущему каталогу.

Лучшее, что я могу придумать, это

$ cd /gitrepo/some/subtree
$ git diff <commit-sha1> <commit-sha1>^ . > patchfile
$ patch -p1 < patchfile

Хотя на самом деле я еще не проверял это. Может ли Git сделать что-то лучше?

1 Ответ

2 голосов
/ 26 августа 2010

Вы можете использовать git checkout для извлечения всего каталога с указанной ревизией.Например, чтобы вернуть каталог src в коммит с пятью коммитами назад:

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