Есть ли способ, если я делаю git checkout файл более старой версии, а затем позже git pull, чтобы снова получить последний файл

У меня есть файл, который я извлек, используя предыдущий хэш-код git
используя команду:
git checkout 1a4f8901b3b3b52903ac7c8e7aa7a0a7ba95b4f1 -- example/abcxyz.php

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

так что если кто-нибудь может помочь мне получить последний коммит этого файла. И почему это не оформить заказ этого файла?

0

Решение

Я не уверен, что вы хотите сделать с извлеченным файлом. Но вот возможные решения:

  • Если вы хотите спрятать извлеченный файл

    git stash
    git pull
    
  • Если вы хотите удалить изменения, внесенные в файл

    git checkout .
    git pull
    
  • Если вы хотите поставить и зафиксировать файл

    git add example/abcxyz.php
    git commit -m "commit message"git pull
    

Дайте мне знать, если что-то из этого поможет вам в вашей проблеме.

0

Другие решения

git pull не делает то, что вы думаете, что делает.

Особенно, git pull вообще не «тянет файлы»!

Какие git pull делает это:

  1. бежать git fetch;
  2. запустить вторую команду Git, обычно 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, если ты делать хотите сохранить свои изменения, вы должны их зафиксировать.)

0