Короче:Undo мерзавец тянуть с удаленного филиала на свежий репозиторий в состояние перед мерзавец тянуть
Могу ли я восстановить свой код в состояние, прежде чем я сделать git pull
после снятия кода с удаленного филиала на свежий git-репозиторий?
Длинная история:
У меня есть две папки, содержащие скрипты, одна папка представляет другую версию файлов в другую папку. Чтобы применить управление версиями, я начинаю с создания git-репозитория в github с папкой с меньшей версией по сравнению с другой папкой и созданием двух ветвей с одним и тем же содержимым для представления обеих папок.
Чтобы синхронизировать папку, которая содержит последнюю версию для удаленного филиала, я следующий в этой папке:
git init
git remote add origin [GITHUB_REPO]
git pull origin [BRANCH_NAME]:[BRANCH_NAME]
git add .
git commit -m "Latest revision."
Я проверил рабочий процесс несколько раз, прежде чем и не кажется, что ничего не случилось, пока я позже что прямо перед git add .
я запустил git status
, и никаких изменений не было показано, оно отображает только новые файлы без следа, что странно.
Мне нужно отменить состояние до того, как я сделаю git pull
, потому что понял, что некоторые из моих файлов перезаписываются с помощью пульта ДУ, но так как pull
- это первое действие, и никаких обязательств до этого я не могу сбросить ни на что до pull
.
Это результат git reflog show
:
edbfd0d [email protected]{0}: commit: Import code from development environment.
da39602 [email protected]{1}: checkout: moving from master to development
То, что я сделал это:
git reset [email protected]{1}
И это не решает проблему, а только отменить последний коммит, и замененные файлы от git pull
все еще не возвращается. Если это помогает, версия git на сервере равна 1.7.1, а на моей локальной машине - 1.8.2.1. Неудивительно, что они действуют по-другому.
-
После дальнейших исследований, я обнаружил, что поведение git pull
на сервере отличается от моей локальной машины развития. Кажется, что на сервере git pull
автоматически сливается, в то время как в моем локальном развитии сообщается, что есть файлы, которые могут быть перезаписаны при слиянии.
Это приводит к тому, что файлы на сервере автоматически используют менее измененную версию на git pull
в существующем файле с невоспроизводимыми файлами, в то время как в моей локальной разработке я могу добавить измененный файл и использовать обновленную версию.
Как выглядит ваш 'git reflog' в этом состоянии? – Christopher
Он выводит только две строки: 'edbfd0d HEAD @ {0}: commit: ...' и 'da39602 HEAD @ {1}: checkout: ...' –
В чем же проблема? «Кажется, что ничего не случилось, пока я не запустил файлы и не получил ошибку». Что именно вы выполняете и какую ошибку вы получаете? Измените это на свой вопрос. – sleske