Intereting Posts
Как git игнорировать файл с тем же именем, что и контейнерный каталог? Размер репозитория SVN по отношению к выделенным двоичным файлам Git – случайно переписал всю историю фиксации удаленного репозитория Git Branch, Rebase, Merge & Tags Расположение папки Git bash под окнами 7 пустой журнал после фиксации Пользовательские свойства в SVN и извлечение файлов на основе свойства Как подключить существующую, не-проектную папку к подрывной деятельности? Добавление git-prompt к моему профилю Bash сбило мой индикатор подсказки pyenv / pyenv-virtualenv из Bash. Как восстановить pyenv для подсказки? Если файлы SSIS * .dtsx будут помечены как -diff в .gitattributes Миграция из SVN в CA Harvest SCM? git pull и clone не удалось; Удаленный конец неожиданно повредил RPC; удалить конфиденциальные данные, но не файл из истории git Учитывая, что файл был в git-репо в какой-то момент, но его нет, выясните, был ли файл «переименован» или «удален» или «переименован, а затем удален», Можно ли блокировать git pulls / fetches?

Возвращение git merge -s ours

Я хочу вернуть слияние, потому что вместо использования git merge -s recursive -X ours , я использовал git merge -s ours .

Я прочитал этот пост в блоге о возврате слияний, но, похоже, он не работает для моего дела.

Итак, у меня есть master ветвь, а затем ветка topic . В какой-то момент я объединил master в topic , а затем объединил topic в master . Когда я объединил master в branch , у меня был конфликт в файле, но я подумал, что это не делает ничего важного, поэтому я решил, что говорю git, чтобы пропустить его и использовать мою версию. Вот когда я использовал git merge -s ours вместо git merge -s recursive -X ours , который я узнал сегодня, что он проигнорировал все, что сделал один из моих товарищей по команде.

Теперь я пытаюсь вернуть это слияние:

 git checkout master git revert -m 2 c475f0ac 

Это действительно приводит к тому, что изменения дерева игнорируются в моем слиянии (изменения моей команды). Проблема в том, что теперь мои изменения больше не в дереве. Я попытался вернуться назад, но не успел.

Любое предложение о том, как вернуть такое слияние?

Подкоманда revert делает новую фиксацию для отмены указанного фиксации, это обычно сложно для возврата транзакций слияния

Вы можете установить дерево в состояние какой-либо конкретной фиксации, выполнить попытку слияния (is c475f0ac?), А затем установить дерево в родительский элемент состояния этого фиксажа (обратите внимание на точку в конце команды, это важно):

 git checkout c475f0ac^ . 

Если вы хотите установить состояние для другого родителя коммита, вы должны использовать

 git checkout c475f0ac^2 . 

И так далее. Вы найдете полезную команду gitk для анализа коммитов, прежде чем продолжить (чтобы выбрать фиксацию, которую вы хотите):

 gitk c475f0ac 

После установки состояния на предыдущую фиксацию, вы можете зафиксировать

 git commit --message 'restored tree to state previous to merge commit c475f0ac' 

И затем нажмите

 git push