git reset commit и push проблема - PullRequest
0 голосов
/ 23 января 2012

Недавно в моей команде случилось, что более свежий попытался сделать git pull. В системе возникли некоторые конфликты, после которых разработчик просто сделал git reset (перенеся индекс в последний HEAD). Затем разработчик «зафиксировал» одно изменение файла и отправил его на удаленный компьютер. Естественно, довольно много изменений было потеряно.

Однако нам потребовалось довольно много времени, чтобы выяснить, кто сделал плохое изменение (а какое принятие было плохим подтверждением), и для его восстановления потребовалось много разных усилий. Теперь в истории git (используя gitk или git log) git показывает только те файлы, которые были зафиксированы, но это случай перезаписи предыдущих файлов (я знаю, что это скорее CVS, а не git, когда файлы были перемещены в предыдущий коммит ). Какова лучшая стратегия для отладки в этом случае?

Как только мы узнаем, какая ветка нарушает одно, когда я делаю git diff между хорошим и плохим коммитом, я вижу список файлов, но, глядя только на конкретный коммит, можем ли мы узнать, какие файлы были перемещены в предыдущий коммит .

Извинения, если проблема не до конца прояснена.

1 Ответ

0 голосов
/ 23 января 2012

Посмотрите на вывод git log -p branch-in-question, и вы увидите внесенные изменения, файл за файлом.Теперь вы можете действовать соответствующим образом, выполнив git checkout <some commit> -- some files, чтобы снова получить ответвление.Добавить все изменения и зафиксировать и нажать.С этого момента вам должно быть хорошо.

...