Подтвердить что ты не робот

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

И любой успех... Даже если я не знаю всех ветвей, и моя ветка была обновлена, я хочу извлечь эти изменения и увидеть в своем журнале.

Любая идея сделать это работает?

4b9b3361

Ответ 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/...