什么是Git

Gitv是目前世界上最先进的分布式版本控制系统。

  那我们为什么需要学习Git呢?因为在我们传统的java自学中,所有的项目都是自己独立开发完成,而且项目基本都是小型项目,在优化和体验上往往比不了正规的公司产品。而当我们进入公司,正式参与到公司的大规模项目中,你就会发现,一个项目都是由5-20甚至更多的程序员合作开发的,而合作开发的东西就需要一个版本控制器,一方面记录每次更新的代码版本,一方面把各个程序员开发的东西拼接到一起,因此我们就需要用到Git。

git的整个运行模式就像上图显示的这样子,每个程序员先从GIT库中拉取项目代码到自己的电脑上,然后在自己的电脑上写好相应的代码后再提交到git库中。这样别人从git库拉取的代码就是你补充过的项目代码了。

  而具体的过程,就是如上图所示,从云git拉取代码修改后commit提交再plush到云库。在这期间如果有其他人拉取的和你是同一个版本,且提交做出修改的内容有冲突(修改同一个java类)。最简单的方法就是从云库再拉取一遍,在本地合并或者修改成一个统一的版本,再提交到云库的新版本。(在实际开发中,建议每次plush时都拉取一下最新的版本,以免产生冲突)

Git是以修改的不同为记录,而不是整个文件。 每次提交和拉取的代码其实都不是整个项目,而是期间版本发生过改变的,可能是一个类,可能是几个类,极大的简便了我们。

 同时,Git也因此而强大。因为这种机制,GIT可以很轻松的做“时光倒退”等操作,假如你对最新一次提交不满意,可以操作回到之前的版本。  而且可以拿出两个版本的具体不同代码,做出对比。

Egit的安装

  作为学习java不久的我们,学习GIT这里我也推荐大家从公司常用的Eclipse插件EGit学起,至于Git,有这个需求的朋友可以自行百度学习下,而Egit的资料相比之下少了许多,这里版主就在这里带着大家看看,从实际作用的角度去学习。

1.打开eclipse,找到help,搜索Egit(由于EGit的版本可能有更新,大家不要只看图标,凡是EGit-******就可以了),点击右下方按钮安装。

2.使用EGit前的配置

配置个人信息,最重要的是user.name和user.email

l Preferences > Team > Git > Configuration

l New Entry

      

 

3.Egit的dsa秘钥

Egit的dsa秘钥相当于是一个独属于你的密码,用于存储SSH协议使用的非对称加密密钥文件,在进行对远程git库的连接的时候是需要的。

1)Eclipse:Window->preferences->General->Network Connections->SSH2

 

2)点击浏览选择文件夹,格式一般如图所示,.SSH是一个隐藏文件夹,没有的可以自己新建设置隐藏。

3)在Key Management页,选择点击 Generate DSA key生成秘钥并填上password然后保存到上面的文件夹中。

Git远程库的搭建

一般公司都有自己的远程库,这里我们个人练习使用,我们主要介绍github,实际操作差不太多,万变不离其宗。

github官网 :https://github.com/

然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:

点“Add Key”,你就应该看到已经添加的Key:

    为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。

    当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。

    最后友情提示,在GitHub上免费托管的Git仓库,任何人都可以看到喔(但只有你自己才能改)。所以,不要把敏感信息放进去。

    如果你不想让别人看到Git库,有两个办法,一个是交点保护费,让GitHub把公开的仓库变成私有的,这样别人就看不见了(不可读更不可写)。另一个办法是自己动手,搭一个Git服务器,因为是你自己的Git服务器,所以别人也是看不见的。

    接着,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库,然后在Repository name填入“仓库名”,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库。

 在右上角的花色图案中点击your profile可以看到属于你的几个仓库。

点击进入仓库可以看到仓库的URL,用来推送和克隆。(命名规则是https://github.com/用户名/仓库名.git   可以记下)

Egit的常用操作

1.打开eclipse新建一个项目,或者把你之前写好要提交的项目。右键:team-共享目录(版主用的中文版,你们自行翻译)。

2.照着下图两把勾都打上,如果xxxx的勾打不上就点击下面的create repository,然后确定。这样,你就将自己的项目变成git项目。

3.在对代码进行修改后,右键team就会发现样子变了。点击第一个commit进行项目的从本地工作区到暂存区提交。

4.弹框如图,unstage change是不要提交的代码,stage changge是你需要提交的代码,把需要提交的代码点住左键拖到下面框,然后输入message(本次提交的信息,一般填写修改了内容。 如:对登录界面进行了优化。)就可以提交了。

5.再次右键team--》push Branch**可以将项目推送到远程仓库。URI填写上面带你看的库的URL,自动生成的Host和path,将用户名和密码填好就可以推送了。注意:SSH码一定要正确。

补充

1.标记:j2ee工作空间中有改动未commit的项目会在对应文件前有?提示,comiit未push的会有>标记

2.克隆到本地Window->perspective->打开透视图(自行翻译#可爱)->Git,点击下图图标,同样的参数就可以克隆库中项目到本地了哦。

这里的地址一定要填写自己eclipse的工作空间并打上勾。从库下载到本地之后在git视图直接右键就可以import到j2ee视图进行编辑了

 

版本控制器——Egit使用方法的更多相关文章

  1. cvs版本控制器

    CVS 版本控制器   首先我们要来明确 :为什么要学习CVS •项目开发靠的是一个团队的能力,很少有大中型项目是由个人完成的.对于团队开发来讲---能控制每个人的分工和权限, 可以让多个人同时编辑同 ...

  2. 【原创】Git版本控制器的基本使用

    关于git Git,是一个分布式版本控制软件.最初本是为了更好的管理Linux内核开发而被林纳斯·托瓦兹开发,后来因为项目开发中版本控制的强烈需求,而git也日趋成熟,最终成为了一个独立的版本控制软件 ...

  3. 版本控制器:SVN

    版本控制器:SVN 开发中的实际问题 小明负责的模块就要完成了,就在即将Release之前的一瞬间,电脑突然蓝屏,硬盘光荣牺牲!几个月来的努力付之东流--需求之一:备份! 这个项目中需要一个很复杂的功 ...

  4. 新手向--git版本控制器

    body { width: 70%; border: 1px solid #ddd; outline: 1300px solid #fff; margin: 16px auto } body .mar ...

  5. Ubuntu 16.04系统下安装RapidSVN版本控制器及配置diff,editor,merge和exploer工具

    在Window下我们使用TortoiseSVN(小乌龟),可以很方便地进行查看.比较.更新.提交.回滚等SVN版本控制操作. 在Linux下我们可以使用RapidSVN.RapidSVN是一款轻量级的 ...

  6. 细说GIT分布式版本控制器

    一.Git介绍 Git是目前世界上最先进的分布式版本控制器.Svn CVS 版本控制器:就是用来追溯自己书写的代码的记录信息.好处:可以非常方便的记录何时何地何人操作了哪些代码. 什么是分布式版本控制 ...

  7. Linux——Django 开发环境部署(二)python版本控制器pyenv

    python版本控制器pyenv 之前的 那篇是说明了django环境的site package完全独立出来了,但是使用的python解释器还是系统的,为了继续独立出来,甚至是达到ruby的rvm的自 ...

  8. 你了解SVN, CVS等版本控制器吗?

    版本控制器SVN, CVS是两种版本控制器, 需要配套相关的SVN, CVS服务器, SCM是xcode里面配置版本控制的地方, 版本控制的原理就是A和B同时开发一个项目, A写完当天的代码之后把代码 ...

  9. 2016/5/6 thinkphp ①框架 ② 框架项目部署 ③MVC模式 ④控制器访问及路由解析 ⑤开发和生产模式 ⑥控制器和对应方法创建 ⑦视图模板文件创建 ⑧url地址大小写设置 ⑨空操作空控制器 ⑩项目分组

    真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳 ...

随机推荐

  1. 【续】强行在C# Winform中渲染Cocos2d-x 3.6

    [前言] 上一篇讲了怎么把Cocos2d-x 3.6渲染进MFC窗体,这里来讲一下怎么在C# Winform中做到同样的功能.如果你不熟悉MFC的使用但对C# Winform比较在行,请往下看. 这一 ...

  2. 上传预览 easyui部分控件获取focuse 表单验证

    js: $(document).ready(function () { //$('#creater').combobox({ // url: '/VMS.UI/BindData/ScheamData? ...

  3. DotNet加密方式解析--数字签名

    马上就要过年回村里了,村里没有wifi,没有4G,没有流量,更加重要的是过几天电脑就得卖掉换车票了,得赶紧写几篇博客. 数据安全的相关技术在现在愈来愈变得重要,因为人们对于自身的信息都有一种保护的欲望 ...

  4. js动画(四)

    终于到了最后了,这里要告一段落了,整了个js运动框架,咳咳咳,好冷 啊啊啊啊啊啊,这天气.妈的,工资怎么也不发,啊,说好的 人与人之间的信任呢?哎,气诶,不到150字啊,又是这个梗..怎么办?说些什么 ...

  5. 数据挖掘学习笔记--AdaBoost算法(一)

    声明: 这篇笔记是自己对AdaBoost原理的一些理解,如果有错,还望指正,俯谢- 背景: AdaBoost算法,这个算法思路简单,但是论文真是各种晦涩啊-,以下是自己看了A Short Introd ...

  6. ubuntu 16.04 的64位 安装arm-none-linux-gnueabi-gcc的步骤和问题解决

    一 首先下载arm-none-linux-gnueabi-gcc交叉编译器,根据不同的需求请在网址: https://launchpad.net/gcc-arm-embedded/+download ...

  7. [个人翻译]GitHub指导文件(GitHub Guides[Hello World])

    [个人翻译]GitHub指导文件(GitHub Guides[Hello World]) Mirage_j个人翻译,欢迎转载,最好标明出处http://www.cnblogs.com/mirageJ/ ...

  8. WebForm 三级联动

    三级联动 数据库根据父级代号条件写查询 返回list<>集合 方法一: 创建三个下拉列表: ※AutoPostBack:否发生自动回传到服务器的操作.如果把该属性设置为 TRUE,则启用自 ...

  9. 快速排序时间复杂度为O(n×log(n))的证明

    快速排序时间复杂度为O(n×log(n))的证明 之前只知道快速排序的平均时间复杂度为O(n×log(n)),最糟糕时复杂度为O(n^2),但却不知道具体原因,今天好好证明一下,最后部分摘自<算 ...

  10. c#类,接口,结构,抽象类介绍 以及抽象和接口的比较

    c#中的类是最常见的实际上就是对某种类型的对象定义变量和方法的原型. 结构是值类型,而类是引用类型. 1.与类不同,结构的实例化可以不使用 new 运算符.结构可以声明构造函数,但它们必须带参数. 2 ...