Git fetch说“成功”,但没有下载

时间:2012-05-28 18:52:14

标签: git github

我在使用git时遇到了一些严重问题,但在网上找不到任何解决方案。我是新用户,所以我可能做错了......

我在Github上托管了一个存储库,我团队中的某个人只是推了一个新的提交。在Windows上使用Git GUI,我试图从Github获取新的提交。 Git说获取是成功的,但没有找到/下载的更改。

我尝试为Github创建一个新的遥控器并使用它。 (例如git@github.com:MyUserName/MyProject)。从这个遥控器获取时,Git说成功并将每个分支列为最新更新。但是,没有分支下载。如果我再次运行获取,则会显示相同的消息。

我几天前在同一个存储库中遇到了同样的问题。我通过删除我的本地存储库并从Github克隆了repo来“修复”它。但显然这只是暂时的解决方案,因为问题又回来了。

非常感谢任何指导!

解决:你是对的,我需要在获取更改后合并。 (可悲的是,Git GUI不允许拉动)我假设Git GUI曾经自动执行此操作,但也许我偶然在某些时候更改了选项。感谢所有的信息!

3 个答案:

答案 0 :(得分:6)

fetch完全符合您的情况:它将更改下拉到您的本地Git(同步存储库),但不会将这些更改合并到您的分支中,也不会更新您的工作副本。我相信你要找的动词是pull

What is the difference between 'git pull' and 'git fetch'?

答案 1 :(得分:6)

正如另一个答案所说,fetch只是将新提交添加到您的历史记录中,但仅更新“远程跟踪分支”。这些是对新提交的引用,但不是您所使用的本地分支。

如果您想使用远程跟踪分支更新本地分支,则需要使用git pull

我建议git fetch代替git pull更好,然后使用git log --allgitk --all或其他方式检查远程分支上的更改内容检查历史。当您了解将要引入的更改及其性质时,您现在可以git merge origin/some-branchgit rebase origin/some-branch更新本地分支以包含更改。

答案 2 :(得分:0)

通常,pull = fetch + merge。 有时,在“获取”后您可能看不到任何更改。你必须使用“拉”才能看到真正的更新。我不知道根本原因。