大家好,又见面了,我是你们的朋友全栈君。
面试官提出了git clone 与 git pull有什么区别。由于自己对git的掌握情况不是特别深入,感觉瞬间被问蒙圈一样。后来,查了相关的文档,看了一些文章,自己有了一丁点的理解,觉得应该写下来。
从字面意思也可以理解,都是往下拉代码,git clone是克隆,git pull 是拉。
但是,也有区别:
从远程服务器克隆一个一模一样的版本库到本地,复制的是整个版本库,叫做clone.(clone是将一个库复制到你的本地,是一个本地从无到有的过程)
从远程服务器获取到一个branch分支的更新到本地,并更新本地库,叫做pull.(pull是指同步一个在你本地有版本的库内容更新的部分到你的本地库)
git pull相当于是从远程获取最新版本并merge(合并)到本地 git pull = git fetch + git merge,git fetch更安全一些
git clone是远程操作的第一步,通常是从远程主机克隆一个版本库,eg:
git clone ## 该命令会在本地主机生成一个目录,与远程主机的版本库同名,如果要是制定不同的目录名,可以将目录名作为git clone 命令的第二个参数。eg: git clone ## 该命令会在本地主机生成一个目录,与远程主机的版本库同名,如果要是制定不同的目录名,可以将目录名作为git clone 命令的第二个参数。eg:
git clone #版本库网址# #本地目录名# git clone支持多种协议,除了http(s),还有ssh,git,本地协议。
git pull 作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。它的完整格式稍稍有点复杂。eg:
git pull ##远程主机(origin) #远程分之(next)#:#本地分之(master)#
如果远程分支是与当前分支合并,则冒号后面的部分可以省略。eg: git pull ##远程主机(origin) #远程分之(next)#:#本地分之(master)# 如果远程分支是与当前分支合并,则冒号后面的部分可以省略。eg:
git pull #远程主机(origin)# #远程分之(next)# 相当于1.
gitfetchorigin2. g i t f e t c h o r i g i n 2.
git merge origin/next
在某些场合,git会自动在本地和远程分之之间,建立一种追踪关系。比如,在git clone 的时候,所有本地分之默认与远程主机的同名分之,建立追踪关系,也就是,本地的master分之自动“追踪”origin/master分之。git 可以手动建立追踪, git branch –set-upstream master origin/next —>指定master分之追踪到origin/next。
如果当前分支只有一个追踪分支,连远程主机名都可以省略。$ git pull 表示当前分之自动与唯一一个追踪分之进行合并。
参考网址:http://www.yiibai.com/git/home.html
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/162559.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...