• 技术文章 >开发工具 >git

    Git教程之git pull和git clone的区别(总结分享)

    WBOYWBOY2022-01-10 19:28:50转载5051

    本篇文章给大家带来了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吗?”

    所以首先要连接远程仓库。

    49.png

    init初始化空白的本地仓库,里边除了.git啥也没有

    连接远程仓库

    1.1.1 本地没代码

    50.png

    git remote -v用于显示当前本地仓库连接的远程仓库,你可以连接好几个。然后一个仓库是成对存在的,一个上传一个下拉。前边origin我一般称为远程仓库代称,后边的是你的连接方式。

    现在显示我连接了一个github的远程仓库取名叫origin。

    51.png

    空白仓库直接使用git pull就可以下拉代码了。

    1.1.2 本地有代码

    本地有代码是什么情况。

    为什么要git pull呢?不同电脑上代码版本不一样。所以为了减少工作并且保证代码版本一致,要在每次写代码的时候下拉代码。在写完之后push到远程仓库。画个图解释一下。

    47.png

    48.png

    1.2 我没权限的仓库

    没权限的仓库指的是别人的仓库。别人不给权限,你当然不能随意修改人家的代码了。

    没权限的仓库不能使用git pull。比如:

    今天我像往常一样去下载代码。但是这是我第一次下载别人的代码。

    52.png

    我像往常一样添加仓库链接,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密钥无法使用,让我确认我是否有权限访问或者这个仓库是不是存在。

    仓库确实是存在的。所以肯定是我没有权限。

    53.png

    解释一下三步操作:

    这时候我想起来:SSH只有仓库所有者能用。因为你电脑上配置的SSH和你github上的SSH是一对的,只有你在你电脑上使用你的github仓库才能用SSH。

    既然仓库所有者才能用SSH,那我换HTTP不就行了。(此时我还没意识到问题的严重性)

    54.png

    我又添加了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,代码成功下载下来了。

    55.png

    我删除了上边的https连接远程仓库的方法

    git remote -v用于查看你本地仓库都连接了哪些远程仓库,如果连接了会显示仓库代号和连接方式,我这里输出空白,就是没连接任何远程仓库的状态

    git clone下载代码成功了。

    上边说的是别人的仓库,那如果是我有权限的仓库呢?

    新建一个本地仓库。很明显是成功的。SSH能成功,那HTTPS必定成功。不用remote能成功,那用了remote也必定成功。

    56.png

    推荐学习:《Git教程

    以上就是Git教程之git pull和git clone的区别(总结分享)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:掘金,如有侵犯,请联系admin@php.cn删除
    专题推荐:git
    上一篇:十分钟学会GIT仓库瘦身及GIT LFS迁移说明 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • git中diff的含义是什么• git怎样查询远程分支• 讲讲Laravel如何集成GitHub来存储文件• git与tfs有什么区别• git怎样修改name用户名
    1/1

    PHP中文网