gitclone,git clone b dev

http://www.itjxue.com  2023-01-21 18:28  来源:未知  点击次数: 

git clone做了什么

打开一个directory,输入

发生了如下图所示的事情

git的 clone 命令将远程仓库在本地命名为origin,创建一个指向它的 master 分支的指针,并且在本地将其命名为 origin/master( 如第二个图的origin/master指针 ),同时创建一个master指针,并将 HEAD 指针指向这个master指针( 如第二个图的master指针 ),这样就有工作的基础,并且工作目录变成master指针指向的快照。

git clone时出现Permission denied (public key)问题解决

总结一下,出现这个问题原因是clone的时候需要使用一个公钥和本地的私钥来做身份认证。

1、首先确认自己有没有git帐号

2、有的话,生成一对公私钥对,公钥上传到github,私钥需要添加到本地的私钥列表

具体步骤如下所示:

用? git clone ?时出现错误:

Permission?denied?(publickey).

上网搜了一下, 原因是'You've probably not added a public key to your SSH keys.'

解决方法如下:

用下面的命令生成public key

$ ssh-keygen -t rsa

复制 public key (id_rsa.pub) 到你账户的 list of SSH keys , 再重新运行clone命令

如果还不行,执行下面的分析步骤:

1、首先尝试重新添加以前生成的key,添加多次,仍然不起作用。

2、使用命令 ssh -v git@github.com测试,最后几行结果如下:

debug1: Authentications that can continue: publickey

debug1: Next authentication method: publickey

debug1: Trying private key: /home/gr/.ssh/id_rsa

debug1: Trying private key: /home/gr/.ssh/id_dsa

debug1: Trying private key: /home/gr/.ssh/id_ecdsa

debug1: No more authentication methods to try.

Permission denied (publickey).

3、分析:尝试了3个private key,但都没有成功,最后是导致Permission denied.

4、查看我的密钥, ls ~/.ssh/ :

bajie ?bajie.pub ?known_hosts

5、发现我的id_rsa文件我命令为bajie, 所以根本没有使用它。同时可以使用如下命令查看密钥列表:

ssh-add -l

6、上面命令的密钥列表为空,所以要添加我的密钥,使用命令:

gr@grpc:~/workspace/git/home$ ssh-add ~/.ssh/bajie

Enter passphrase for /home/gr/.ssh/bajie:

Identity added: /home/gr/.ssh/bajie (/home/gr/.ssh/bajie)

7、再次查看,如下,添加成功:

gr@grpc:~/workspace/git/home$ ssh-add -l

2048 63:c5:d8:6c:a0:0c:a8:9c:26:d8:f8:95:de:29:04:eb /home/gr/.ssh/bajie (RSA)

8、再使用ssh -v git@github.com测试连接,可以看到验证通过:

debug1: Authentications that can continue: publickey

debug1: Next authentication method: publickey

debug1:Offering RSA public key: /home/gr/.ssh/bajie

debug1: Server accepts key: pkalg ssh-rsa blen 279

debug1:Authentication succeeded (publickey).

Authenticated to github.com ([192.30.252.129]:22).

9、最后git clone项目成功。

git clone --depth=1 的用法

在github或gitlab克隆项目时,因项目太大git clone会报错,如下:

解决的办法为:

--depth 用来指定克隆的深度,1表示克隆最近的一次commit。

这种方法克隆的项目只包含最近的一次commit的一个分支,体积很小。

需要将该分支所有的commit克隆下来的话,可以用下面的命令:

但会产生另外一个问题,他只会把默认分支clone下来,其他远程分支并不在本地,所以这种情况下,需要用如下方法拉取其他分支:

git 从本地clone

git clone 除了从远程地址clone,还能从本地clone。

有时候方便开发我们需要不同的分支在不同的文件夹下同步开发,避免频繁的编译重构。

直接复制文件夹,里面的node_modules target 等被gitignore的文件会非常慢.

git clone 命令

? ?拷贝一个 Git 仓库到本地

? ? 1、拷贝一个 Git 仓库到本地,本地目录名称与Git 仓库同名

? ??????????git clone 版本库的网址

? ? 2、拷贝一个 Git 仓库到本地,重新定义本地目录名称

? ??????????git clone 版本库的网址 本地目录名

? ? 3、?拷贝一个指定分支到本地,本地目录名称与分支同名

? ???????????git clone?-b 分支名 版本库的网址

? ???4、拷贝一个指定分支到本地,重新定义本地目录名称

????????????git clone?-b 分支名 版本库的网址 本地目录名

git clone

1、git clone 的理解

git clone默认会把远程仓库整个给clone下来 ,只能clone远程库的master分支并在本地默认创建一个master分支 ,无法clone所有分支,若想要其它分支的内容,如下:

git clone默认会把远程仓库整个给clone下来

但只会在本地默认创建一个master分支

如果远程还有其他的分支,此时用git branch -a查看所有分支:

$ git branch -a

*master

remotes/origin/HEAD - origin/master

remotes/origin/python_mail.skin

remotes/origin/vip

能看到远程的所有的分支,如remotes/origin/python_mail.skin 可以使用checkout命令来把远程分支取到本地,并自动建立tracking

$ git checkout -b python_mail.skin origin/python_mail.skin

Branch python_mail.skin set up to track remote branch python_mail.skin from origin.

Switched to a new branch 'python_mail.skin'

或者使用-t参数,它默认会在本地建立一个和远程分支名字一样的分支

$ git checkout -t origin/python_mail.skin

(责任编辑:IT教学网)

更多

相关MYSQL文章

推荐MYSQL文章