Я использую Git 1.7.4.1. Я хочу получить последнюю версию своего кода из репозитория, но я получаю ошибки ...
$ git pull
….
M selenium/ant/build.properties
….
M selenium/scripts/linux/get_latest_updates.sh
M selenium/scripts/windows/start-selenium.bat
Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>' as appropriate to mark resolution, or use 'git commit -a'.
Я удалил локальные копии файлов, на которые жалуется инструмент, но я все еще получаю ошибки. Как проверить последнюю версию из удаленного репо? - Дэйв
git fetch
сначала. У меня не было конфликтов, но я получил последнюю версию кода.Ответы:
Если вас не волнуют какие-либо локальные изменения (включая неотслеживаемые или созданные файлы или вложенные репозитории, которые просто оказались здесь), и вы просто хотите получить копию из репозитория:
Опять же, это сведет на нет все изменения, которые вы сделали локально, поэтому используйте их осторожно. Думайте о том,
rm -Rf
когда делаете это.источник
git clean -f
на самом деле не является частью ответа. Он удалит файлы, которые не хранятся в хранилище (например, в моем случае, файлы журнала); Вам не нужно делать это, чтобыgit pull
снова работать,git reset --hard HEAD
достаточно.git clean -f
это важно, если вы хотите реальную очистку вашей репозитой. Это эквивалентно выполнению операции «Удалить все из папки -> Получить последнюю версию / Получить спецификацию» в TFS, и в моем случае это то, что я хотел.Случай 1: не заботиться о локальных изменениях
Решение 1. Получите последний код и сбросьте код
Решение 2. Удалите папку и снова клонируйте: D
Случай 2: Забота о локальных изменениях
Решение 1: не конфликтует с новой онлайн-версией
сообщит что-то вроде:
Тогда получите последнюю версию
Решение 2: конфликтует с новой онлайн-версией
сообщит что-то вроде:
Зафиксируйте свои локальные изменения
Попробуйте получить изменения (не получится)
сообщит что-то вроде:
Откройте файл конфликта и исправьте конфликт. Затем:
сообщит что-то вроде:
Дополнительная информация: Как мне использовать 'git reset --hard HEAD', чтобы вернуться к предыдущему коммиту?
источник
Я подозреваю, что произошло то, что вы удалили файлы, которые вы изменили (потому что вы не заботились об этих изменениях), и теперь git воспринимает удаление как изменение.
Вот подход, который перемещает ваши изменения из вашей рабочей копии в «тайник» (извлекаемый, если на самом деле окажется, что они вам когда-нибудь понадобятся снова), так что вы можете затем извлечь последние изменения из апстрима.
Если вы когда-нибудь захотите получить ваши файлы (потенциальные конфликты с изменениями
git stash apply
в исходном коде и т. Д. ), Запустите команду, чтобы поместить эти изменения поверх вашего кода. Таким образом, у вас есть подход «отменить».источник
git stash pop
если вы не хотите историю ваших git-Вы должны объединить свои файлы в первую очередь. Сделайте,
git status
чтобы увидеть, какие файлы нужно объединить (значит, вам нужно сначала разрешить конфликты). Как только это будет сделано, делайgit add file_merged
и делайpull
снова.источник
попробуй этот код
источник
Если вы просто хотите выбросить все в своей рабочей папке (например, результаты неудачного или прерванного слияния) и вернуться к чистой предыдущей фиксации, выполните a
git reset --hard
.источник
Я понимаю, что вы хотите удалить ваши локальные изменения и выяснить, что находится на вашем пульте?
Если все остальное терпит неудачу, и если вы (вполне понятно) боитесь «перезагрузки», самое простое - просто клонировать источник в новый каталог и удалить старый.
источник
Запустив эту команду, вы получите самый последний тег, который обычно является версией вашего проекта:
источник
Мне кажется, что у вас проблемы с core.autocrlf. core.autocrlf = true может создать проблемы, подобные тем, которые вы описываете в Windows, если в репозиторий были добавлены новые строки CRLF. Попробуйте отключить core.autocrlf для репозитория и выполнить полную перезагрузку.
источник
Если вы используете Git GUI, сначала получите, а затем объедините.
Извлечь через Удаленное меню >> Извлечь >> Происхождение. Объединить через меню Merge >> Merge Local.
Появится следующий диалог.
Выберите радиокнопку ветви отслеживания (также по умолчанию выбрана), оставьте желтое поле пустым и нажмите кнопку слияния, и это должно обновить файлы.
Я уже отменил некоторые локальные изменения перед выполнением этих шагов, так как я в любом случае хотел их отменить, чтобы позже мне не пришлось их удалять с помощью слияния.
источник