Недавно на работе мы потеряли код в проекте под управлением версии с помощью git (и частного репозитория github).Как можно вернуть фиксацию также как фиксацию слияния?
Я использовал git bisect
, чтобы найти виновную совершить, и я очень удивлен, обнаружив, что смотрели, как Revert совершить, но и имел два родителей, как слияние совершает:
commit b5f97311eea2905baf8a96fddec22321d952f05c
Merge: 8cc7371 131d463
Author: Bob <[email protected]>
Date: Fri May 22 19:42:25 2015 +0200
Revert "ISB-CPW-3627 - Mise en place du calage des filtres DS1/DS2/DS3/DS4"
This reverts commit 8cc7371e7133b68db95ac8e9aeb730d7889a1166.
Эта проблема была решена путем создания новую ветку от фиксации предка и применение некоторых патчей поверх этой новой ветки.
Так что мне не нужна помощь, чтобы исправить это, я просто хочу понять, как можно вернуть фиксацию, также может быть слияние, что произошло и как воспроизвести это странное поведение.
Я попытался воспроизвести его, как это:
- создать новый филиал в
8cc7371
- мерзавец вернуться
8cc7371
Это создает Revert совершить с одним родителем (8cc7371
), как ожидается.
Автор сценария преступника использует Atlassian SourceTree вместо интерфейса командной строки, поэтому я также попытался использовать функцию возврата в SourceTree и получил тот же результат, что и выше (один родительский).
После выполнения некоторых команд Git на b5f9731
, я заметил, что git diff
и git show
не сообщают тот же набор файлов:
$ git diff b5f9731..8cc7371 --name-only
=> 2 files :
application/sites/frontend/views/scripts/Layout/Foobar/PointsDeVente/index.tpl
public/media/design/frontend/css/main-dev.css
$ git show --oneline --name-only b5f9731
=> 1 file :
public/media/design/frontend/css/main-dev.css
SourceTree и Github показывают 2 файла.
Вы можете найти как выглядит график: graph.html, и некоторые результаты команды git: misc.html.
Может ли кто-нибудь объяснить, что произошло с b5f9731
?
Я добавлю это сообщение в избранное и использую его как пользовательскую ссылку How-To-Ask для вопросов, связанных с Git. –
Как проходит расследование? –
Сегодня я играл с функцией интерактивного перебора SourceTree и не смог воспроизвести проблему. Я полагаю, что эта проблема имеет какое-то отношение к 'git rebase' или' git pull --rebase', но я сдаюсь. Мне не хватает информации, 3 недели назад, когда это случилось, я попросил автора сообщения отправить мне его рефлог для дальнейшего расследования, и он не смог этого сделать. Он работает в другой компании (они работают на лицевой стороне, тогда как моя компания работает на стороне сервера), общение затруднено. Тайна остается: s – Vince