一、环境准备
git安装完成并配置环境变量
1.1 idea中指定git安装目录
File->Settings->Version Control->Git
点击Test 如果能正常显示Git版本则Git安装配置正确 可以正常使用
1.2 创建本地仓库
选择当前项目的目录作为本地仓库
- VCS->Import into Version Control ->Create Git Repository
- 当项目图标如下时,说明当前项目被git跟踪管理
1.3 开发java项目
1.4 下载idea的gitee插件
-
File->Settings->Plugins->搜索gitee 点击install安装即可
-
没有网络则需要离线安装插件–
点击选择插件位置即可
<<intellij-gitee-2020.1.1.jar>>
安装完成插件后 需要重启idea
1.5 Gitee配置用户名 密码
- File->Settings->Version Control->Gitee
- 点击右侧加号,添加用户名信息
输入码云的用户名 密码,点击Log in,确保用户名密码正确可以正确登录码云
1.6 将当前项目提交到本地仓库
- 在项目模块上右键选择Git,执行Add指令添加
- 继续进行commit提交
- 或者工具栏绿色对勾进行提交
- 添加提交注释
1.7 将本地仓库push到远程仓库
- 设置远程仓库
- 点击+号添加远程仓库url
- 提交到远程仓库
- Gitee查看提交结果:
1.8 从远程仓库拉取项目
1.9 拉取项目最新状态
至此,idea中git、以及远程仓库码云的使用全部完成
二、EGIT - Eclipse下的GIT插件
2.1 EGit-基本配置
2.1.1 配置GIT默认仓库
2.1.2 配置GIT用户信息
2.1.3 打开EGit相关视图
2.2 EGIT - 本地版本控制
2.2.1 将项目转换为仓库
2.2.2 EGit图标
2.2.3 增加到缓存区
2.2.4 提交到分支区
2.2.5 一步提交版本(增加到暂存区+提交到分支区)
2.2.6 查看版本信息
2.2.7 增加文件到本地仓库
2.2.8 提交修改到本地仓库
2.2.9 从本地仓库删除文件
2.2.10 从暂存区中撤销
2.2.11 基于分支树回滚版本
2.2.12 基于操作历史回滚版本
2.2.13 文件版本比较
a.两个历史版本之间的比较
2.2.14 忽略文件
.gitignore文件格式:
1)空格不匹配任意文件,可作为分隔符,可用反斜杠转义
2)以“#”开头的行都会被 Git 忽略。即#开头的文件标识注释,可以使用反斜杠进行转义。
3)可以使用标准的glob模式匹配。所谓的glob模式是指shell所使用的简化了的正则表达式。
4)以斜杠"/"开头表示目录;"/"结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件;
"/"开始的模式匹配项目跟目录;
如果一个模式不包含斜杠,则它匹配相对于当前 .gitignore 文件路径的内容,
如果该模式不在 .gitignore 文件中,则相对于项目根目录。
5)以星号"*"通配多个字符,即匹配多个任意字符;
使用两个星号"**" 表示匹配任意中间目录,比如`a/**/z`可以匹配 a/z, a/b/z 或 a/b/c/z等。
6)以问号"?"通配单个字符,即匹配一个任意字符;
7)以方括号"[]"包含单个字符的匹配列表,即匹配任何一个列在方括号中的字符。
比如[abc]表示要么匹配一个a,要么匹配一个b,要么匹配一个c;
如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配。
比如[0-9]表示匹配所有0到9的数字,[a-z]表示匹配任意的小写字母)。
8)以叹号"!"表示不忽略(跟踪)匹配到的文件或目录,即要忽略指定模式以外的文件或目录,
可以在模式前加上惊叹号(!)取反。
需要特别注意的是:如果文件的父目录已经被前面的规则排除掉了,那么对这个文件用"!"规则是不起作用的。
也就是说"!"开头的模式表示否定,该文件将会再次被包含,
如果排除了该文件的父级目录,则使用"!"也不会再次被包含。可以使用反斜杠进行转义。
需要谨记:git对于.ignore配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;
2.3 EGIT - 远程版本控制
2.3.1 代码托管站点
基于Git这一优秀的分布式版本控制工具,市面上出现了大量基于Git的代码托管网站,开发者可以选择使用代码托管网站作为分布式版本控制中的"中央服务器",从而非常便利的实现代码托管、分布式开发、项目管理等能功能,省去了自己搭设中心服务器的麻烦。
目前,许多开源项目也基于代码托管网站进行管理,随着越来越多的人参与和使用,Git代码托管网站早已不再只是基本的版本管理工具,而成为了一个完整的开发者社区,在开源领域有着重要的作用。
目前有很多代码托管网站,其中最知名的是GitHub,托管着大量的私有或开源的项目,其他国外较为知名的代码托管网站包括GitLab、BitBucket等,但这些代码托管网站通常架设在国外,国内访问并不稳定,而国内也有相关产品,例如 码云、coding等,在国内也有较为广泛的应用。
2.3.2 GitEE码云
码云(gitee.com)是开源中国推出的代码托管平台,支持 Git 和 SVN,提供免费的私有仓库托管。目前已成为国内最大的代码托管系统,有超过 300 万的开发者选择码云。
2.3.3 EGit推送代码到远程仓库 - HTTPS方式
-
提交本地代码
Team->Commit -
推送本地仓库代码到远程仓库
-
在远程仓库中检查是否推送成功
2.3.4 EGit从远程仓库克隆代码到本地仓库 - HTTPS方式
- 点击下一步,克隆项目成功
- 如果之前提交时,提交过.project和.setting等文件,选择第一项可以进一步导入该仓库中的代码到Eclipse中成为一个java项目
如果之前提交时,没有提交过.project和.setting等文件,选择第二项,依次填写信息即可将项目导入到Eclipse中成为一个java项目
导入成功,在Eclipse下使用该项目
2.3.5 EGit从远程仓库拉取代码 - HTTPS方式
- 尝试从EGIT中进行拉取,通过[Team->Remote->Fetch From…]开始拉取
- 成功拉取了文件
2.3.6 使用SSH方式连接远程仓库
-
非对称加密简介
非对称加密算法是一种密钥的保密方法。非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。 非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。
另一方面,甲方可以使用乙方的公钥对机密信息进行签名后再发送给乙方;甲方再用自己的私钥对乙方发送回来的数据进行验签。
甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。 非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要。
非对称密码体制的特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。对称密码体制中只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。所以保证其安全性就是保证密钥的安全,而非对称密钥体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了。这样安全性就大了很多。
非对称加密主要算法有: RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等
-
SSH免密登录原理
-
SSH方式免密连接远程仓库
以上的案例中均是使用HTTPS方式连接的远程仓库,但通常远程仓库通常都提供SSH方式的连接,且SSH方式以非对称加密为原理可以实现免密登录,从而可以避免频繁的输入用户名密码,是一种更加安全、便捷的连接方式,目前应用的非常广泛,推荐使用。