git pull
和git pull origin master
有什么区别?
如果我在除master
以外的分支上,这两个命令会产生不同的结果吗?
git pull
和git pull origin master
有什么区别?
如果我在除master
以外的分支上,这两个命令会产生不同的结果吗?
请记住,pull 操作是一次 fetch 和 merge 操作。
git pull origin master 从 origin 远程仓库的 master 分支获取提交记录(到本地的 origin/master 分支),然后将 origin/master 合并到当前所在的分支。
git pull 只有在当前所在的分支跟踪了一个上游分支时才能使用。例如,如果当前所在的分支跟踪了 origin/master 分支,git pull
就等同于 git pull origin master
。
首先,让我们了解一下 git pull
是什么:
git pull 命令用于从远程仓库获取和下载内容,并立即更新本地仓库以匹配该内容。 git pull
命令是 git fetch
和 git merge
的组合。 git pull
将从远程仓库下载内容。下载完成后,git merge
将内容合并到您的本地仓库中。将创建一个新的合并提交,并将 HEAD 更新为指向新提交。
现在我们知道 git pull
可以做什么,当我们执行 git pull origin master
时,它会从原始仓库中获取 master
分支的副本,并将其与您所检出的当前分支合并。
欲了解更多信息,请访问此链接。
Git pull的作用等同于 Git fetch + Git merge。
git pull origin master 假设你当前在本地的master分支上,运行这个命令,Git 会从远程的origin/master拉取已提交的代码,然后合并到本地的master分支上。
git pull 这是一种将代码合并到本地跟踪远程分支的快捷方式。
那么问题来了,如何让本地分支跟踪远程分支呢?
据我所知,有两种常见方法:
1. 首次推送时使用以下命令:
git push -u origin branch_name
-u
标志告诉 Git 让本地分支跟踪远程分支。
git branch --track branch_name origin/branch_name
从文档中可以看到:
https://git-scm.com/docs/git-pull
git pull [<options>] [<repository> [<refspec>…]]
git-pull - Fetch from and integrate with another repository or a local branch
...
Default values for and are read from the "remote" and "merge" configuration for the current branch as set by git-branch[1] --track.
所以
如果你的分支设置为“master”,那么git pull和git pull origin master将执行相同的操作。
如果你的分支设置为“master”,Git pull和git pull origin some-other-branch将不同。
如果你的分支设置为“some-other-branch”,那么Git pull和git pull origin master将不同。
git pull
。首先,让自己熟悉git fetch
和git merge
。如果你打算使用git rebase
,也要熟悉它。然后,稍后再使用git pull
作为方便命令,知道它所做的就是用一些参数运行git fetch
,接着是git merge
或带有其他参数的git pull
。只有当你熟悉这两个命令时,整个过程才会有意义。在此之前,它是不容易理解的! - torek