Git fetch не обновляет мой локальный репозиторий
Что я хочу:
Обновить все новости совершают с сервера с моим локальным репозиторием во всей ветки, но не объединяют ни одну ветвь (просто присоединяйся к строкам истории).
Я пытаюсь выполнить эту команду
git fetch --force --progress --verbose [email protected]:/path/to/repository.git
Я думал, что все будет хорошо, потому что он показывает:
From host:/path/to/repository
* branch HEAD -> FETCH_HEAD
Но что означает этот вывод? Если я вижу журнал, это не обновление. Если я делаю клон с сервера, все новые коммиты есть. Итак... Команда не работает. Затем я пытаюсь использовать ветку, существующую на сервере, но не в моем локальном репозитории
git fetch --force --progress --verbose [email protected]:/path/to/repository.git my_branch
Результат:
From host:/path/to/repository
* branch my_branch -> FETCH_HEAD
И любой успех... Даже если я не знаю всех ветвей, и моя ветка была обновлена, я хочу извлечь эти изменения и увидеть в своем журнале.
Любая идея сделать это работает?
Ответы
Ответ 1
При получении вы получаете удаленные ветки, но вам все равно нужно объединить изменения из удаленной ветки в вашу локальную ветвь, чтобы увидеть эти изменения.
После выбора, попробуйте следующее:
git log origin/yourbranchname | head
git log yourbranchname | head
Вы видите разницу?
Теперь выполните:
git checkout origin/yourbranchname -b newbranchname
git log newbranchname
Вы должны увидеть удаленные изменения в newbranchname.
Вы также можете объединить эти изменения в свою ветку с помощью
git checkout yourbranchname
git merge origin/yourbranchname
Ответ 2
Я столкнулся с этой проблемой раньше, основная причина заключается в том, что вы не настроили remote.origin.fetch в локальной конфигурации git.
используйте команду ниже, чтобы исправить вашу проблему:
git config --local --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/*
после этого запустите 'git fetch origin', я думаю, вы получите ожидаемый результат.
Ответ 3
git fetch
просто вносит изменения в локальную копию удаленной ветки. Если вы хотите обновить свое репо или местную ветку, вы должны следовать fetch
с помощью merge
или просто использовать git pull
для однократного запуска.
Отличный ответ SO: fooobar.com/info/5/...