目前我使用的Eclipse luna版本中已经集成了git插件,这里就不介绍如何安装Git插件了,不懂可以看其他的博客。

  上篇笔记介绍了Git的基本指令,实际开发中我基本都使用eclipse插件进行代码提交和更新,下面就介绍下Eclipse中如何使用Git插件。

  首先看一张Git管理代码原理图:

          

  从这张图中可知道Git管理代码涉及到4个地方,

  Remote:远程仓库,或者叫远程分支,一个项目由多个人开发时,远程仓库就是中央代码库。

  Repository:本地仓库,顾名思义就是安装在本地的代码库,这也是Git与Svn最大的区别,SVN是集中式管理,每次提交或更新代码前都要连接远程仓库,而Git因为有本地仓库,代码先提交到本地仓库,需要时再更新到远程仓库,也就是说本地代码提交和更新无需连接远程仓库,没网也能提交和更新代码。

  Index:索引,这就要谈到上篇笔记中提到的Git的三种状态,当代码由Git托管后,工作区的代码更改后,状态会变成已修改(Eclipse中表现为代码文件上有一个>标记),那么想要提交到本地仓库,必须先将代码提交到暂存区,这个暂存区就是索引,Eclipse中的指令是Add to Index。

  WorkSpace:本地工作空间,这个就不多解释了。

 下面介绍实际工作中代码的提交与合并,冲突解决。

  在你上次更新代码到远程仓库,现在准备写代码之前,先pull下远程仓库的代码,这样可将远程仓库的更改合并到本地代码,这样做的好处是通常无需手动解决冲突,因为之前你已经把本地仓库的更改推送到远程仓库了,远程仓库后面的更改也是在你的代码基础上,而你本地代码并没有更改,所以这种情况下合并是最好最简单的方式。合并代码后再写代码。

  当然你也可以省略上面这步,直接写代码,写完代码后add to Index —— commit,将代码提交到本地仓库。

  记住这时别急着push到远程仓库,因为在你写代码这段时间可能其他人和你同时修改了一个文件的同一个位置,这时你要再次pull下,查看工作空间的代码有没有红色的双箭头的,如果有那就要手动解决冲突了。

如图

  

解决完冲突后,再次Add to Index ——Commit,更新到远程仓库前最好还是pull,只到没有出现冲突时,再push代码。

这种方法是最保险的,保证不会影响别人的代码,也不会出错。

总结:记住在推送代码到远程仓库时,记得pull代码,有冲突解决冲突,没冲突直接push.

顺便说下pull和fetch的异同,他们都是更新远程仓库代码到本地的,不同的是fetch完以后还需要merge一下,而pull一个指令包含了fetch和merge两个操作。

然后再说下merge和rebase的异同,他们都是用于合并代码,不同的时rebase操作稍微复杂一些,但更仔细一些,它会将远程文件和本地文件做对比,并标记出冲突的地方,当解决完所有冲突后执行Add to Index操作,然后不要马上执行commit操作,先执行Continue Rebase操作,然后再执行Commit操作。是不是有写麻烦?如果使用merge指令就没有Continue Rebase操作了,但解决冲突就没那么明显了,他自动将远程和本地的代码合并到本地,然后用上图中的形式标记出来。解决完冲突后执行Add to Index ——Commit操作。所以这就看你个人喜好了。

Git学习笔记(2)-Eclipse中Git插件使用的更多相关文章

  1. [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar中的类解压后放在运行jar中

    前文: [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar打在jar包中 使用7z打开压缩包,查看所有依赖的jar都被解压以包名及class的方式存储在了运行jar中,此时jar的 ...

  2. [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar打在jar包中

    本文需要参考前文: [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar在子目录中 上文是导出的运行的依赖jar被放在了子目录中,本文是将依赖jar放在可运行jar的本身,这样发布的 ...

  3. [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar在子目录中

    工程创建可参考前文: [学习笔记] 在Eclipse中使用Hibernate,并创建第一个工程,数据库为Oracle XE 在工程上鼠标右键: 找到java 选择 Runable JAR file N ...

  4. [学习笔记] 在Eclipse中导入项目

    参考前文:[学习笔记] 在Eclips 中导出项目 选择已经导出的文件: 导入之后,项目结构如下: 至此,完成.

  5. git学习四:eclipse使用git提交项目

    支持原创:http://blog.csdn.net/u014079773/article/details/51595127 准备工作: 目的:eclipse使用git提交本地项目,提交至远程githu ...

  6. git学习五:eclipse使用git下载项目

    原文:http://blog.csdn.net/u014079773/article/details/51597213 准备工作: 目的:从远程仓库github上down所需的项目 eclipse使用 ...

  7. Git学习笔记(一)Git初识及基本操作

    详细完整教程:官方文档,廖神Git教程,武sir 一.什么是Git? 定义:Git是分布式版本控制系统. 1.1什么是版本控制 我们可以回想以下,在我们上学毕业要写论文或是准备一份演讲稿的时候,都会用 ...

  8. [学习笔记] 在Eclipse中添加用户库 Add User Libraries ,在项目中引用用户库

    如果还没有安装Eclipse, 则请参考前文:  [学习笔记] 下载.安装.启动 Eclipse(OEPE) 添加用户库 本文主要介绍在项目中直接使用第三方库的情况.就是把第三方的jar文件直接放到某 ...

  9. [学习笔记] 在Eclipse中使用Hibernate,并创建第一个工程

    在Eclipse中使用Hibernate 安装 Hibernate Tools 插件 https://tools.jboss.org/downloads/ Add the following URL ...

随机推荐

  1. RocketMQ之十:RocketMQ消息接收源码

    1. 简介 1.1.接收消息 RebalanceService:均衡消息队列服务,负责通过MQClientInstance分配当前 Consumer 可消费的消息队列( MessageQueue ). ...

  2. Windows 10 删除资源管理器中7个文件夹

    Windows 10 安装完成之后 ,在资源管理器中会存在 7 个文件夹,他们分别是:图片.视频.下载.音乐.桌面.文档.3D对象. 我们可以通过修改注册表的方式,隐藏这7个文件夹.相关注册表内容如下 ...

  3. 【AMAD】django-oauth2-provider -- 为你的app提供Oauth2的访问

    简介 个人评分 简介 django-oauth2-provider1主要是为django集成oauth2加入了不少的工具,比如装饰器,Base View, Authentication Backend ...

  4. python安装第三方库报错:Cannot uninstall '***'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

    pip install --ignore-installed ${PACKAGE_NAME}

  5. co源码

    co模块整体包括三部分 对于几种参数类型的判断,主要判断是否object,array,promise,generator,generatorFunction这几种; 将几种不同的参数类型转换为prom ...

  6. PYTHON 100days学习笔记007-2:python数据类型补充(2)

    目录 day007:python数据类型补充(2) 1.Python3 元组 1.1 访问元组 1.2 删除元组 1.3 元组运算符 1.4 元组索引,截取 1.5 元组内置函数 2.python3 ...

  7. Count Different Palindromic Subsequences

    Given a string S, find the number of different non-empty palindromic subsequences in S, and return t ...

  8. Nginx的一些常用配置

    #定义Nginx运行的用户和用户组 #user nobody; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 1; #全局错误日志定义类型,[ debug | ...

  9. 洛谷P2622 关灯问题II (二进制枚举+bfs

    题目描述 现有n盏灯,以及m个按钮.每个按钮可以同时控制这n盏灯——按下了第i个按钮,对于所有的灯都有一个效果.按下i按钮对于第j盏灯,是下面3中效果之一:如果a[i][j]为1,那么当这盏灯开了的时 ...

  10. PAT A1025 PAT Ranking(25)

    题目描述 Programming Ability Test (PAT) is organized by the College of Computer Science and Technology o ...