У меня есть файл, который я извлек, используя предыдущий хэш-код git
используя команду:
git checkout 1a4f8901b3b3b52903ac7c8e7aa7a0a7ba95b4f1 -- example/abcxyz.php
теперь, когда я обновляю какой-либо файл и выполняю git pull, git pull
команда не может вытащить вышеуказанный файл оформления заказа.
так что если кто-нибудь может помочь мне получить последний коммит этого файла. И почему это не оформить заказ этого файла?
Я не уверен, что вы хотите сделать с извлеченным файлом. Но вот возможные решения:
Если вы хотите спрятать извлеченный файл
git stash
git pull
Если вы хотите удалить изменения, внесенные в файл
git checkout .
git pull
Если вы хотите поставить и зафиксировать файл
git add example/abcxyz.php
git commit -m "commit message"git pull
Дайте мне знать, если что-то из этого поможет вам в вашей проблеме.
git pull
не делает то, что вы думаете, что делает.
Особенно, git pull
вообще не «тянет файлы»!
Какие git pull
делает это:
git fetch
;git merge
,Первая команда — git fetch
часть git pull
— ваш Git вызывает другой Git, обычно Git по URL, который вы сохранили под именем origin
, Этот другой Git может иметь некоторые коммиты, которых у вас еще нет. Если так, другой Git передает эти коммиты вашему Git вместе с именами веток, которые другой Git использует для Помните эти коммиты. Ваш Git тогда переименовывает их ветви, так что ваш мерзавец помнит их master
под твоим именем origin/master
их dev
под origin/dev
, и так далее.
Узнав о любых новых коммитах, которых у вас нет, теперь ваш Git может работать git merge
на одном из этих хеш-идентификаторов коммитов. Если вы не сказали иначе, ваш git pull
Команда делает это сейчас.
Операция слияния объединяет «то, что вы сделали» — что в данном случае включает «установить этот файл обратно во времени» — с «тем, что они сделали». Чтобы сделать это, слияние должно сначала найти коммит, которым вы поделились с ними. Если вы на вашем master
ветвь, например, вы можете найти ваш последний коммит, который также находится на вашем origin/master
(это способ помнить ваш Git их master
). Ваш Git может сравнить:
Что было в этом старом коммите, и что в вашем текущем коммите? Что бы ни отличалось, ты, должно быть, изменился.
Что было в этом старом коммите, а что в их текущий коммит? Что бы ни отличалось, Oни Должно быть, изменился.
Если они сделали не измените файл, и вы сделал измените файл — вы действительно изменили файл, вы сами так сказали — тогда Git сохраняйте свои изменения.
(Обратите внимание, что если у вас нет привержен ваши изменения, делая такого рода git merge
это сложно и не очень хорошая идея. Если вы этого не сделаете хочу ваши изменения, вы можете отменить их, используя git reset
или же git checkout
; любой достаточно современный Git даст вам совет по этому git status
, если ты делать хотите сохранить свои изменения, вы должны их зафиксировать.)