Git pull не обновляет изменения

#git #pull

#git #тянуть

Вопрос:

Я использую только одну ветку master .

Я написал новый метод, а затем зафиксировал и запустил его.Затем я случайно удалил метод из своей локальной ветки. введите описание изображения здесьКогда я пытаюсь вернуть метод из удаленной ветви в локальную с помощью git pull с использованием intellij IDE, опция слияния отсутствует, и появляется сообщение: Все файлы обновлены

Комментарии:

1. По команде pull какое сообщение вы получаете?

2. Все файлы обновлены

3. Можете ли вы поделиться своим скриншотом git pull? Чтобы помочь вам лучше?

4. Имейте в виду, что IDE, подобные IntelliJ, не являются Git . Они могут использовать Git, но иногда они будут изменять поведение и / или сообщения различных операций. Сам Git никогда не говорит «Все файлы обновлены»; его сообщение здесь было бы таким, Already up to date. здесь нет ни слова о файлах , что важно: Git говорит, что ваши коммиты обновлены. (Git касается коммитов , а не файлов.)

Ответ №1:

git pull не обновляет изменения, потому что git pull обновляется в соответствии с новыми изменениями на удаленном компьютере, поэтому, когда вы удалили файл, он был удален на вашем локальном компьютере, а на удаленном компьютере новых изменений нет. Когда у вас git pull нет нового изменения / фиксации в remote, это ничего не меняет и показывает «Все файлы обновлены».

В вашем случае git reset --hard origin/master вернет ваш удаленный файл, так как эта команда сбросит ваш локальный файл на удаленный.

Комментарии:

1. Спасибо. Что, если я уже написал несколько новых методов в local и не хочу сбрасывать local на remote, а только объединить изменения? Есть ли команда для этого?

2. Если вы хотите восстановить только свой удаленный файл, а также не хотите потерять другие локальные изменения, вы можете git checkout — <path_to_deleted_file>, чтобы восстановить это. Также, если вы считаете, что мой ответ был удовлетворительным, вы можете принять его как ответ.

Ответ №2:

Вы можете сбросить локальную ветку на то, что находится на удаленном

git reset --hard origin/master

Комментарии:

1. Спасибо. Но почему я получаю сообщение: «Все файлы обновлены»?

Ответ №3:

Способ Git отменить локальные изменения (которые вы еще не зафиксировали) — это checkout :

 git checkout -- <file>
  

отменит все незафиксированные изменения в <file> вашей рабочей копии.

Если вы хотите отменить только некоторые изменения, используйте -p :

 git checkout -p -- <file>
  

и git спросит вас за каждый кусок, хотите ли вы его выбросить или нет.

Приведенные выше команды предназначены для командной строки (git bash, если вы работаете под управлением Windows).

Поскольку вы используете IntelliJ IDE, вы также можете захотеть ознакомиться с локальной историей, поддерживаемой IntelliJ — это не зависит от git и должно позволить вам вернуться к предыдущей версии любого файла.