Git新手教程 安装配置 及结合myeclipes

一、概念

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

二、集中式和分布式的区别

集中式版本控制系统:版本库是集中存放在中央服务器的,而干活的时候,用的电脑都是自己的电脑,所有要从中央服务器取得最新的版本,然后开始干活,干完活,再把自己的活推送给中央服务器。中央服务器好比图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完在放回图书馆。

集中式版本控制系统最大的缺点就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,如果网速慢的话,那更新提交就不行了。

分布式控制系统与集中式版本控制系统有何不同呢?首先,分布式版本控制系统没有“中央服务器”,每个人的电脑都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人的电脑上都有一个完整的版本库,那多个人 如何协作呢?比方说你在自己电脑上改了文件A,同事也在他的电脑上改了文件A,这时,你们俩之间只需要把各自的修改推送给对方,就可以相互看到对方的修改了。

和集中式版本控制系统相比,分布式版本控制系统安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了只要随便从其他人那里复制一份就可以了。而集中式版本控制系统的中央服务器出了问题,所有的人都没法干活了。

在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,或者他的电脑没有开机 。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,这个服务器的作用仅仅是用来方便“交换”大家的修改。没有它大家也一样干活,只是交换修改不方便而已。

三、安装git

运行Git-2.8.1-64-bit.exe进行安装

四、myeclipes部署git

解压org.eclipse.egit-updatesite-1.3.0.201202151440-r-site 到D:\Users\hp\AppData\Local\MyEclipse\MyEclipse 10\dropins目录中(和SVN配置类似)

五、配置myeclipes中git属性

点击图中的new entry增加属性,分别添加key: user.name 和key:user.email属性

 

Git新手教程 安装配置 及结合myeclipes

 

六、用git管理项目

1.用git从远程导出项目

点击window  ---show  ---git  repositories出现:点击红圈部分

 

Git新手教程 安装配置 及结合myeclipes

 

出现下面界面

 

Git新手教程 安装配置 及结合myeclipes

 

然后下一步下一步完成,把导出的项目导进myeclipes就好了。

2.本地新建项目

新建项目与git关联

右击项目team  --  share project

 

Git新手教程 安装配置 及结合myeclipes

 

打开share project 界面选择git,然后下一步:

 

Git新手教程 安装配置 及结合myeclipes

 

下面为创建本地的版本库

 

Git新手教程 安装配置 及结合myeclipes

 

点击finish完成配置

七、提交项目

1.右击项目teame中的commit

 

Git新手教程 安装配置 及结合myeclipes

 

2.打开后为下图(此处提交不是正式提交,是先放在本地版本库了)

 

Git新手教程 安装配置 及结合myeclipes

 

3.往远程版本库提交

 

Git新手教程 安装配置 及结合myeclipes

 

 

点开出现如下界面

 

Git新手教程 安装配置 及结合myeclipes

 

点击next出现

 

Git新手教程 安装配置 及结合myeclipes

 

点击完成就把项目放到了远程版本库。

八、更新项目

1. 打开myeclipes  -git  -repository setting,选择自己的repository

点击open

 

Git新手教程 安装配置 及结合myeclipes

 

在打开的配置文件中加入

[branch "master"]

remote = origin

merge = refs/heads/master

[remote "origin"]

fetch = +refs/heads/*:refs/remotes/origin/*

url = https://github.com/lxl987210264/ceshi.git

(url为远程项目本本库路径)

加完后repository setting新增加属性:

 

 

Git新手教程 安装配置 及结合myeclipes

 

 

2.右击项目team  -pull就相当于SVN的更新(也可以用merge和远程分支就行合并,注:merge比较简单方便,建议使用)

 

Git新手教程 安装配置 及结合myeclipes

 

九、冲突解决

1.当你从远程库更新时遇见冲突,例如:(红色部分代表有冲突文件)

 

Git新手教程 安装配置 及结合myeclipes

 

2. 方法一:比较文件team  ---synchronize workspace

 

Git新手教程 安装配置 及结合myeclipes

 

​ 出现下面界面:从这里也可以看到冲突

 

Git新手教程 安装配置 及结合myeclipes

 

打开冲突文件显示为:

 

Git新手教程 安装配置 及结合myeclipes

 

可以看到冲突的具体位置,然后更改冲突;

方法二:

右击冲突文件team  --- merge tool

:

 

Git新手教程 安装配置 及结合myeclipes

 

出现如下界面

 

Git新手教程 安装配置 及结合myeclipes

 

点击ok出现熟悉的界面:

 

Git新手教程 安装配置 及结合myeclipes

 

同样可以进行比较确定冲突位置,然后更改冲突文件。

改完冲突后右击冲突文件team---add  to index(再次将文件加入索引控制)

 

Git新手教程 安装配置 及结合myeclipes

 

此时文件已不再是冲突文件

 

Git新手教程 安装配置 及结合myeclipes

 

 

然后在进行commit ---》  push 提交到远程,冲突就搞定了;

十、git分支

1.创建分支

右击要创建分支的项目team ---switch to---new Branch

点击出现如下界面,输入分支名称点击完成。分支就创建好了,并且会自动切换到新建分支

 

Git新手教程 安装配置 及结合myeclipes

 

2.切换分支

 

Git新手教程 安装配置 及结合myeclipes

 

如上图可以看出当前在哪个分支,我们切回到主干:

右击项目team---switch to  -- master

 

Git新手教程 安装配置 及结合myeclipes

 

就切回了主干:

 

Git新手教程 安装配置 及结合myeclipes

 

3.将分支合并到主干

如下为我主干中aa.java文件的内容

 

Git新手教程 安装配置 及结合myeclipes

 

分支aa.java文件内容为:

 

Git新手教程 安装配置 及结合myeclipes

 

接下来将分支内容合并到主干,首先先提交修改的分支内容到本地,然后在提交push给远程,方式和之前的提交方法一样,就是选择分支选择对就行

 

Git新手教程 安装配置 及结合myeclipes

 

提交完成后我们切到主干,右击项目team --merge

 

Git新手教程 安装配置 及结合myeclipes

 

打开如下界面:

 

Git新手教程 安装配置 及结合myeclipes

 

选择要被合并的分支点击merge:

 

Git新手教程 安装配置 及结合myeclipes

 

现在主干中aa.java文件内容为

 

Git新手教程 安装配置 及结合myeclipes

 

这样就完成了把分支合并到主干;

4.将主干合并到分支上

主干合并到分支步骤和分支合并到主干类似,将当前项目切换到分支,然后选择主干进行合并。

5.删除分支

右击项目team---switch to---other

 

Git新手教程 安装配置 及结合myeclipes

 

打开如下

 

Git新手教程 安装配置 及结合myeclipes

 

点击删除,在此处也可以进行更改名字(rename);

十一、版本回退

1.右击项目team -- show in history

 

Git新手教程 安装配置 及结合myeclipes

 

2.出现如下界面:

 

Git新手教程 安装配置 及结合myeclipes

 

在这里可以看到历史所有的版本及改动内容;

3.右击指定的具体某一个版本:

 

Git新手教程 安装配置 及结合myeclipes

 

reset有三种类型:

soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可;

mixed(默认): 此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息

hard: 彻底回退到某个版本,本地的源码也会变为上一个版本的内容 .

4. 回退好在push到远程仓库。