Я узнаю о работе с удаленными устройствами Git, прочитав соответствующий раздел книги Pro Git.
Если вы клонируете репозиторий, команда автоматически добавляет этот удаленный репозиторий под именем «origin». Таким образом, git fetch origin
извлекает любую новую работу, которая была отправлена на этот сервер с момента ее клонирования (или последней загрузки).
Важно отметить, что команда git fetch
только извлекает данные в ваш локальный репозиторий; он не объединяет его автоматически с какой-либо вашей работой и не изменяет то, над чем вы сейчас работаете. Вы должны вручную объединить его со своей работой, когда будете готовы.
Вот что я пробовал. Я клонировал репозиторий и редактировал файл. В оригинальном репозитории кто-то обновил тот же файл и запушил. Затем,
Я побежал
git fetch
. Он показал некоторое сообщение о ходе обновления. Однакоgit log
не показал это обновление. Я неправильно понял, что делаетgit fetch
? Я что-то упускаю?Я запустил
git pull
и получил
ошибка: ваши локальные изменения в «hello_world.c» будут перезаписаны слиянием. Прерывание. Пожалуйста, зафиксируйте свои изменения или спрячьте их перед слиянием.
Здесь, я считаю, это также слияние и, чтобы избежать случайной потери данных, прерывается.
Изменить: Спасибо за ответы. На самом деле, прежде чем смотреть ответы, я пытался сам и понял то же самое со следующими командами/выходами:
$ git ls-remote origin
d0006a6bfa95e0e90aa820a0e50d31a548625652 HEAD
d0006a6bfa95e0e90aa820a0e50d31a548625652 refs/heads/master
$ git ls-remote .
14375458b8a6b84f82d9fa4d2ded0bb8c9e87431 HEAD
14375458b8a6b84f82d9fa4d2ded0bb8c9e87431 refs/heads/master
d0006a6bfa95e0e90aa820a0e50d31a548625652 refs/remotes/origin/HEAD
d0006a6bfa95e0e90aa820a0e50d31a548625652 refs/remotes/origin/master
Также со следующими командами:
$git log origin --oneline
$git log --oneline
Спасибо, что терпите мои глупые вопросы ;-)