2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

高版本的Eclipse自带有该插件

EGit-基本配置

配置GIT默认仓库

2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

配置GIT用户信息

2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

打开EGit相关视图

2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

EGIT - 本地版本控制


  1. 将项目转换为仓库
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

  2. EGit图标
    已跟踪[ tracked ]
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
    未跟踪[ untracked ]
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
    仓库未跟踪,通常是新建的文件,要接入版本管理可以通过“Add to Index”或直接
    “Commit”操作。

忽略[ ignored ]
2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
仓库认为该文件不存在(如bin目录,不需要关注)。通过右键Team => Ignore 添加忽
略文件

已修改[ dirty ]
2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
修改“已跟踪[ tracked ]”的文件,未添加到暂存区Index(未“Add to Index”或
“Commit”)的文件,标志与本地库不一致。
已暂存[ staged ]
2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
修改“已跟踪[ tracked ]”的文件,并添加到暂存区Index(即执行“Add to
Index”);
已部分暂存[ partially-staged ]
2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
修改“已跟踪[ tracked ]”的文件,部分修改已添加暂存区Index,部分未添加。相当
于:已跟踪的文件修改,Add to Index ,Commit前又修改了文件。

已添加[ added ]
2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
untracked 状态的文件,通过“Add to Index”被仓库已知,但是没有“Commit”,
“Commit”后可变为“已跟踪[ tracked ]”状态。
已删除[ removed ]
2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
从工作区中删除文件,文件会消失,也就没有图标出现,下一次提交时被删除。Team
=> Untrack可以触发本图标,在“Commit”对话框中可以看到图标。
冲突[ conflict ]
2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
进行Merge合并操作会引起冲突,需要人工解决并添加到索引区修改状态。

假设有效[ assume-valid ]
2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
一些修改未被Git检查。右键Team => Assume unchanged可产生该状态。

  1. 增加到缓存区
    Team->Add To Index
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

  2. 提交到分支区
    Team->Commit
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

  3. 一步提交版本(增加到暂存区+提交到分支区)
    Team->Commit
    在进行提交操作时,EGIT允许直接勾选 [未跟踪] 状态的文件,此时,EGit会自动将该类型文
    件Add To Index 后再 Commit

  4. 查看版本信息
    Team->Show In History
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

  5. 增加文件到本地仓库
    Team->Add To Index
    Team->Commit
    Team->Commit
    创建文件
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
    增加到暂存区 [Team->Add To Index]
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
    提交到分支区 [Team->Commit]
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

  6. 提交修改到本地仓库
    Team->Add To Index
    Team->Commit
    Team->Commit
    修改文件
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
    增加到暂存区 [Team->Add To Index]
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
    提交到分支区 [Team->Commit]
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

  7. 删除文件从本地仓库
    删除文件
    Team->Commit
    直接删除文件
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
    提交到分支区 [Team->Commit]
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

  8. 从暂存区中撤销
    Team->Remove From Index
    修改工作区
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
    增加到暂存区 [Team->Add To Index]
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
    从暂存区中撤销 [Team->Remove From Index]
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

  9. 基于分支树回滚版本
    [History窗口中]Reset->Soft、Mixed、Hard
    History窗口中选择目标版本并回滚 [Reset->Soft、Mixed、Hard]
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

  10. 基于操作历史回滚版本
    [GitRef窗口中]Reset->Soft、Mixed、Hard
    GitRef窗口中选择某个历史指令并回滚到该指令执行过后的状态 [Reset->
    Soft、Mixed、Hard]
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

  11. 文件版本比较
    两个历史版本之间的比较
    [History窗口中,选择两个版本]->Compare With Each Other
    History窗口中,选择两个版本,并通过[Compare With Each Other]进行比较
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

指定历史版本和当前工作区中文件的比较 b.
[History窗口中,选择某一个版本,选择其中一个文件]->Compare With WorkSpace
History窗口中,选择某一个版本,选择其中一个文件,并通过[Compare With WorkSpace]
将该文件的指定版本和当前工作区中的状态做比较
2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
比较窗口中提供了按钮,可以实现快速代码移植
2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

  1. 忽略文件
    Team->Ignore
    可以通过[Team->Ignore]命令Git忽略指定文件,此命令本质上会将该文件位置信息写
    入.gitignore文件中,git会根据此文件中指定的规则忽略相应文件
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
    因此也可以直接修改.gitignore指定忽略文件规则
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

.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配置文件是按行从上到下进行规则匹配的,意味着如果前面的
规则匹配的范围更大,则后面的规则将不会生效;

EGIT - 远程版本控制


  1. 代码托管站点
    基于Git这一优秀的分布式版本控制工具,市面上出现了大量基于Git的代码托管网站,开发者可以选择使用代码托管网
    站作为分布式版本控制中的"*服务器",从而非常便利的实现代码托管、分布式开发、项目管理等能功能,省去了自
    己搭设中心服务器的麻烦。
    目前,许多开源项目也基于代码托管网站进行管理,随着越来越多的人参与和使用,Git代码托管网站早已不再只是基本
    的版本管理工具,而成为了一个完整的开发者社区,在开源领域有着重要的作用。
    目前有很多代码托管网站,其中最知名的是GitHub,托管着大量的私有或开源的项目,其他国外较为知名的代码托管网
    站包括GitLab、BitBucket等,但这些代码托管网站通常架设在国外,国内访问并不稳定,而国内也有相关产品,例如
    码云、coding等,在国内也有较为广泛的应用。
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

  2. GitEE码云
    码云(gitee.com)是开源中国推出的代码托管平台,支持 Git 和 SVN,提供免费的私有仓库托管。目前已成为国内最大的代
    码托管系统,有超过 300 万的开发者选择码云。
    ***云
    访问码云官网https://gitee.com/,注册并登陆
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

在码云上创建仓库
2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
配置仓库基本信息
2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
获取项目地址
2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

  1. EGit推送代码到远程仓库 - HTTPS方式
    提交本地代码
    Team->Commit
    推送本地仓库代码到远程仓库
    Team->Remote->Push
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
    在远程仓库中检查是否推送成功
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

  2. EGit从远程仓库克隆代码到本地仓库 - HTTPS方式
    [Eclipse菜单 - File - Import]
    从远程仓库中克隆项目,选择[Eclipse菜单 - File - Import]
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
    点击下一步,克隆项目成功
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
    可以进一步导入该仓库中的代码到Eclipse中成为一个java项目
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
    导入成功,在Eclipse下使用该项目
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

  3. EGit从远程仓库拉取代码 - HTTPS方式
    Team->Remote->Fetch From…
    当远程仓库中有高于本地版本的更新内容时,可以在本地仓库通过拉取操作获取该版本内容。
    为了方便测试,在远程仓库中,创建一个新文件
    2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

尝试从EGIT中进行拉取,通过[Team->Remote->Fetch From…]开始拉取
2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

拉取之后在History里可以看到最新拉取到的版本,但master和HEAD仍未执行该版本,通过[Rest->
Soft、Mixed、Hard]来进行指向
2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
成功拉取了文件
2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

  1. 使用SSH方式连接远程仓库
    非对称加密简介
    非对称加密算法是一种**的保密方法。
    非对称加密算法需要两个**:公开**(publickey)和私有**(privatekey)。公开**与私有**是一对,
    如果用公开**对数据进行加密,只有用对应的私有**才能解密;如果用私有**对数据进行加密,那么只有用
    对应的公开**才能解密。因为加密和解密使用的是两个不同的**,所以这种算法叫作非对称加密算法。 非对称
    加密算法实现机密信息交换的基本过程是:甲方生成一对**并将其中的一把作为公用**向其它方公开;得到该
    公用**的乙方使用该**对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用**对加密后的
    信息进行解密。
    另一方面,甲方可以使用乙方的公钥对机密信息进行签名后再发送给乙方;甲方再用自己的私钥对乙方发送回来的
    数据进行验签。
    甲方只能用其专用**解密由其公用**加密后的任何信息。 非对称加密算法的保密性比较好,它消除了最终用户
    交换**的需要。
    非对称密码*的特点:算法强度复杂、安全性依赖于算法与**但是由于其算法复杂,而使得加密解密速度没有
    对称加密解密的速度快。对称密码*中只有一种**,并且是非公开的,如果要解密就得让对方知道**。所以
    保证其安全性就是保证**的安全,而非对称***有两种**,其中一个是公开的,这样就可以不需要像对称
    密码那样传输对方的**了。这样安全性就大了很多。
    非对称加密主要算法有: RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等

SSH免密登录原理
2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件
SSH方式免密连接远程仓库
以上的案例中均是使用HTTPS方式连接的远程仓库,但通常远程仓库通常都提供SSH方式的连接,且SSH方式以非
对称加密为原理可以实现免密登录,从而可以避免频繁的输入用户名密码,是一种更加安全、便捷的连接方式,目
前应用的非常广泛,推荐使用。

本地生成公钥私钥对
2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

在远程仓库中配置公钥
2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

之后就可以通过SSH地址来免密连接远程仓库了
2.最全的Git在Eclipse中的使用教程 ---EGIT - Eclipse下的GIT插件

上一篇 1.Git零基础使用详解

关于更多DevOps 使用教程 敬请期待。。。。。