我正在通过这本书和git help命令学习Git。
我更改了origin的内容,并将其付诸实施。然后,我在存储库的“本地副本”中启动了git fetch origin命令。
$ git fetch origin
remote: Counting objects: 4, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 4 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (4/4), done.
From D:/_git.sandbox/./my_remote_project
a03e9df..837c57d master -> origin/master这个信息我不清楚..。从书中:
正如您刚才看到的,要从远程项目获取数据,可以运行:
$ git fetch [remote-name]该命令将发出到远程项目,并从该远程项目中提取尚未得到的所有数据。完成此操作后,您应该有对来自该远程的所有分支的引用,您可以随时合并或检查这些分支。
如果在git fetch origin之后我做了origin不可用,那么我会得到一个git pull错误。因此,在我看来,git pull请求可以使用origin并仍然使用它,而不是下载的远程存储库的更改。也就是说,git fetch告诉我origin存储库已经更改(如果发生的话),但不会将这些更改下载到本地存储库中。要下载这些更改并在存储库的本地版本中实现,我将执行git pull。也就是说,当我启动“git状态”时,git fetch是一种通知更新“原产地”存储库的方法?我说的对吗?
发布于 2015-07-08 08:29:39
不是的。
git fetch下载本地没有存储的远程存储库的更改。不过,它并不适用于您的本地分支机构。
git pull是一个git fetch,后面是您设置的分支的git merge,在拉出时要合并。
发布于 2015-07-08 08:24:18
或多或少。
在fetch之后,您已经下载了远程的对象,在本例中是origin (如果需要,提交和引用),但这不会改变本地存储库(它们没有应用)。要使本地master与origin/master同步,需要在($ git merge origin/master)中使用merge
pull只是一个fetch,后面是当前分支上的一个merge。所以你通常只需要$ git pull。
注意,如果有几个分支,那么只有当前的分支会在拉后合并(但是fetch对整个远程都有效)。
发布于 2015-07-08 08:35:31
git fetch只更新表示远程的分支(例如origin/master)。如果您想获得本地分支中的更改(例如master),则需要对它们进行git merge。或者,您可以使用git pull命令同时执行这两种操作。
https://stackoverflow.com/questions/31287122
复制相似问题