git fetch不会更新我的本地存储库

Rodrigo 23 git git-fetch

我想要的是:

使用我的本地存储库在所有分支中更新服务器的所有新闻提交,但不合并任何分支(只需加入历史记录行).

我正在尝试这个命令

git fetch --force --progress --verbose  name@host:/path/to/repository.git 

我认为它会正常工作,因为它显示:

From host:/path/to/repository
  * branch            HEAD       -> FETCH_HEAD

但是,这意味着什么呢?如果我看到日志,则不会更新.如果我从服务器进行克隆,则所有新提交都在那里.所以...命令不起作用.然后我尝试使用服务器中存在但不在我的本地存储库中的分支

git fetch --force --progress --verbose  name@host:/path/to/repository.git my_branch

结果是:

From host:/path/to/repository
  * branch            my_branch       -> FETCH_HEAD

并且任何成功......即使我不知道所有分支和我的分支都是更新,我想获取此更改并可以在我的日志中看到.

有什么想法吗?

George Skopt.. 31

获取时获取远程分支,但仍需要将远程分支中的更改合并到本地分支以查看这些更改.

获取后,试试这个:

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


小智.. 20

我之前遇到过这个问题,主要原因是你没有在git local config中配置remote.origin.fetch.

使用以下命令来解决您的问题:

git config --local --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/*

之后,运行'git fetch origin',我想你会得到预期的输出.


John Weldon.. 10

git fetch只是将更改带到远程分支的本地副本.如果你想更新你的回购或本地分支,你必须遵循fetcha merge,或者只是git pull用于一次性.

伟大的答案:https://stackoverflow.com/a/292359/102371