本篇文章给大家带来了Git教程中git pull和git clone的区别相关知识,希望对大家有帮助。
网上看好多人解释pull和clone的区别,说什么pull是更新本地代码,clone是本地从无到有的过程,但有一点没提到,恰好我今天又犯了这个问题,因为我原来都是直接从远程仓库pull,今天突然发现发现pull不能用,clone才生效,我才意识到这个问题。决定记录一下。
1 git pull
git pull适用于从用户有权限的仓库下拉代码,不管本地有没有代码。
因为我平时下拉代码都是直接git pull。
1.1 我有权限的仓库
我有权限的仓库指的是我自己的,或者团队中我可以使用的仓库。
要使用git pull首先你要确定已经连接远程仓库。要不然你直接git pull orgin master那Github会问你:“什么master?哪个master?你就是老子的master吗?”
所以首先要连接远程仓库。
init初始化空白的本地仓库,里边除了.git啥也没有
连接远程仓库
1.1.1 本地没代码
git remote -v用于显示当前本地仓库连接的远程仓库,你可以连接好几个。然后一个仓库是成对存在的,一个上传一个下拉。前边origin我一般称为远程仓库代称,后边的是你的连接方式。
现在显示我连接了一个github的远程仓库取名叫origin。
空白仓库直接使用git pull就可以下拉代码了。
1.1.2 本地有代码
本地有代码是什么情况。
团队合作,一个仓库多人使用
你自己的仓库,你在多台电脑上使用(比如宿舍一个,实验室一个)
为什么要git pull呢?不同电脑上代码版本不一样。所以为了减少工作并且保证代码版本一致,要在每次写代码的时候下拉代码。在写完之后push到远程仓库。画个图解释一下。
1.2 我没权限的仓库
没权限的仓库指的是别人的仓库。别人不给权限,你当然不能随意修改人家的代码了。
没权限的仓库不能使用git pull。比如:
今天我像往常一样去下载代码。但是这是我第一次下载别人的代码。
我像往常一样添加仓库链接,git pull下拉。但是他提示我:
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rightsand the repository exists.
Permission denied是说SSH密钥无法使用,让我确认我是否有权限访问或者这个仓库是不是存在。
仓库确实是存在的。所以肯定是我没有权限。
解释一下三步操作:
添加远程仓库,用SSH连接
从仓库master分支下拉代码
删除我添加的远程仓库(既然不能用我当然删掉了)
这时候我想起来:SSH只有仓库所有者能用。因为你电脑上配置的SSH和你github上的SSH是一对的,只有你在你电脑上使用你的github仓库才能用SSH。
既然仓库所有者才能用SSH,那我换HTTP不就行了。(此时我还没意识到问题的严重性)
我又添加了https的连接
第二步我又下拉的仓库
然后他又提示我:
fatal: unable to access 'github.com/hitvoice/Dr…': OpenSSL SSL_read: Connection was reset, errno 10054
意思还是我无法连接。
这时候我突然意识到了问题:neutral_face:。这好像是人家的仓库哎,我不能使用remote连接远程仓库之后下拉啊。因为如果我能连上的话就意味着我能随意修改人家的代码。所以我肯定不能使用这样的方式pull代码啊!!!
所以得用git clone
2 git clone
git clone适用于本地没有代码,你要下载。你连不连接远程仓库。有无仓库权限皆可。
接上边的说,意识到使用git clone之后,我删除了刚才的HTTPS连接远程仓库,然后直接git clone,代码成功下载下来了。
我删除了上边的https连接远程仓库的方法
git remote -v用于查看你本地仓库都连接了哪些远程仓库,如果连接了会显示仓库代号和连接方式,我这里输出空白,就是没连接任何远程仓库的状态
git clone下载代码成功了。
上边说的是别人的仓库,那如果是我有权限的仓库呢?
新建一个本地仓库。很明显是成功的。SSH能成功,那HTTPS必定成功。不用remote能成功,那用了remote也必定成功。
推荐学习:《Git教程》
以上是Git教程之git pull和git clone的区别(总结分享)的详细内容。更多信息请关注PHP中文网其他相关文章!

GitHub是一个面向开源及私有软件项目的托管平台,可以让开发者们在这里托管自己的代码,并进行版本控制。GitHub主打的是开源项目与协作,通过这个平台上的开源项目,开发者们可以查看其他开发者的项目源代码,并进行交流和学习。

在git中,“push -u”的意思是将本地的分支版本上传到远程合并,并且记录push到远程分支的默认值;当添加“-u”参数时,表示下次继续push的这个远端分支的时候推送命令就可以简写成“git push”。

GitLab是一种基于Web的Git版本控制库管理软件,旨在帮助开发团队更好地协同工作,提高工作效率。当您第一次登录GitLab时,系统会提示您要更改初始密码以确保账户安全。本文将为大家介绍如何在GitLab上进行第一次登录并更改密码。

在git中,pack文件可以有效的使用磁盘缓存,并且为常用命令读取最近引用的对象提供访问模式;git会将多个指定的对象打包成一个成为包文件(packfile)的二进制文件,用于节省空间和提高效率。

git中pull失败的解决方法:1、利用“git reset --hard”强制覆盖掉自己的本地修改;2、利用“git stash”推送一个新的储藏,拉取之后利用“git stash pop”将修改保存到暂存区;3、若依然出现问题,则将文件保存到暂存区并提交注释即可。

git分支能改名字。改名方法:1、利用git中的branch命令修改本地分支的名称,语法为“git branch -m 旧名字 新名字”;2、利用“git push origin 新名字”命令,在删除远程分支之后将改名后的本地分支推送到远程;3、利用IDEA直接操作修改分支名称即可。

本篇文章给大家带来了关于git的相关知识,其中主要跟大家聊一聊怎么让你的git记录保持整洁,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。

git删除某个分支的方法:1、利用“git branch --delete dev”命令删除本地分支;2、利用“git push origin --delete branch”命令删除远程分支;3、利用“git branch --delete --remotes”命令删除追踪分支。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3汉化版
中文版,非常好用