git远程仓库使用
1. 远程仓库的概念
我们的代码不能总是放在本地,因为总是放在本地,一旦电脑出现故障,数据将丢失,怎么共享呢,这里我们需要一个服务器, 我们可以把代码放到服务器上,然后让别人下载,这样我峨嵋你既可以备份代码,也可以进行团队协作开发
2. 局域网仓库
实际上我们可以搭建一个简单的局域网服务器共享我们的代码
2.1本地相对路径,多个文件夹之间共享代码
URL:直接填写本地仓库路径即可。
目录(D):需要克隆的位置
2.2开启局域网共享代码
选择要共享的本地仓库,如下图操作,复制对应的ip网址
将上面的复制的地址粘贴到URL,目录为需要克隆的位置
局域网这种共享是没有安全控制的,都可以访问,如果想要搭建一个可以控制权限的服务器需要借助第三方软件
gitblit,可以自行搜索搭建
3. 常用远程仓库托管服务
除了自己搭建服务器,其实我们可以使用一些免费的远程仓库,远程仓库有很多,常见的免费互联网远程仓库托管服务如下:
www.github.com
www.gitee.com
www.gitlab.com
github 是一个基于git实现在线代码托管的仓库,向互联网开放,企业版要收钱。
gitee 即码云,是 oschina 免费给企业用的,不用自己搭建环境。
gitlab 类似 github,一般用于在企业内搭建git私服,要自己搭环境。
GitHub(gitee)、GitLab 不同点:
1、GitHub如果使用私有仓库是需要付费的,(2019年开始私有仓库也是免费的但是只能3个人协同开发,想要更多需要收费),GitLab可以在上面搭建私人的免费仓库。
2、GitLab让开发团队对他们的代码仓库拥有更多的控制,相对于GitHub,它有不少的特色:
(1)允许免费设置仓库权限 (2)允许用户选择分享一个project的部分代码 (3)允许用户设置project的获取权限,进一步提升安全性 (4)可以设置获取到团队整体的改进进度 (5)通过innersourcing让不在权限范围内的人访问不到该资源
4. 创建码云远程仓库
5. 把本地代码推送到远端
复制远端仓库中的HTTPS地址,粘贴到下方URL中,其他默认,也可以不点同步,选择推送。
此时我们刷新仓库发现代码已经存在了
我们填写的用户信息,会被保存在本地,下次提交无需填写用户名和密码
6. 从远程仓库克隆代码
我们同样可以从库下载代码,
新建一个文件夹 repo2 ,进入然后进行如下操作
URL还是远端仓库中的HTTPS地址
此时我们发现我们的代码已经被下载下来了
7. 代码的修改与提交,查看历史
1)此时我们修改代码就不能仅仅是提交到本地了,提交完毕应该推送到远端服务器
2)此时如果别人从远端仓库下载最新的代码其实是可以看到我们的代码修改记录的
git -->显示日志
9. ssh 连接概述
实际上git 不仅仅支持用户名密码方式的配置,可以有另外一种相对更加安全的配置即ssh 方式配置
ssh 方式的底层原理:
ssh连接是RAS加密算法,又称非对称加密,是一种现在公认的最安全的加密方式
- A向B发送连接请求,并带上自己的公钥
- B收到A的公钥,检查机器上的授权列表是否包含有A的公钥,若存在,再生成一个随机数,使用公钥加密,生成加密密文发送给A
- A收到加密密文后,用私钥机密,得到的结果发送给B
- B收到A发来的结果,与之前生成的随机数作比较,一致则允许A连接
10. ssh 密钥的生成
#生成公钥私钥
ssh-keygen -t rsa
一直回车即可
会默认用户目录 .ssh 目录生成一个默认的id_rsa文件 和id_rsa.pub
11. ssh 密钥配置
12. ssh 方式克隆/提交代码:
配置完成之后我们克隆我们之前的项目
注:复制SSH的地址
修改后直接提交推送即可成功,git 会自动去.ssh 目录找我们的私钥进行匹配
13. 远程仓库的其他操作
概念
当我们从 gitee 上查看别人的项目的时候我们可能会看到上图中的按钮
指数:
是gitee 网站根据当前项目的各项指标计算出来的一个值
Star:
点赞, 注意这里的并不像朋友圈那样容易获得点赞,圈内人还是很克制的
Watch:
如果你watch 了某个开源项目,那么这个项目后续所有的改动你将收到通知
Fork :
将别人的代码克隆到你自己的仓库
作用一: 如果担心某个优秀的项目别人突然有一天不开源了,你可以fork到自己的仓库
作用二: 修改别人的代码
以linux 为例,你其实不是linux 社区的开发人员,但是你 又想为linux 开发做贡献(维护代码)
你并没有权限,怎们办?
你可以先把linux 开源的代码 fork 到你自己的仓库,此时你就可以操作自己的仓库进行修改代码了
如何让别人合并你修改好的代码呢?
我们注意项目的上方有一个 " Pull Request" 这个按钮的意思是 "请求求别人合并你修改的代码"
当我们发起一个 Pull Request 时 , 项目的拥有者将收到 Pull Request请求,然后将根据你提交代码的质量决定是否合并
项目操作
1)我们可以删除修改我们自己仓库的基本信息
2)我们可以邀请其他人成为项目的开发人员或者管理人员
我们可以删除修改我们自己仓库的基本信息