目前我使用的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. DFS,DP————N皇后问题

    C++代码 #include <iostream> using namespace std; const int N=20; int n; char g[N][N]; bool col[N ...

  2. MySQL知识篇-SQL3

    视图 1 提高重用性: 2 可用于数据库重构: 3 可用于不同用户,提高安全性: 定义视图: create view 视图name as select语句: 查看视图: show tables: 使用 ...

  3. 【VS开发】使用VS2010创建MFC ActiveX工程项目

    1.ActiveX的基本概念 ActiveX控件可以看作是一个极小的服务器应用程序,它不能独立运行,必须嵌入到某个容器程序中,与该容器一起运行.这个容器包括WEB网页,应用程序窗体等... Activ ...

  4. e4a 记录

    自动点击 浏览框.跳转("javascript:document.getElementById('按钮的ID').clcik();")

  5. FTL-SLC&MTC&TLC

    1.博客 SLC.. http://diybbs.zol.com.cn/67/231_661182.html 2.FTL --作者在普及了一些FTL基本知识后,主要分析了在linux上实现的途径 ht ...

  6. poj1155 TELE (树上分组背包)

    题目链接:https://vjudge.net/problem/POJ-1155 题意:给定一颗以1为根的边权树,有n个结点,其中m个叶子结点,每个叶子结点有一个价值.要求从m个叶子结点中选最多的结点 ...

  7. poj1741(入门点分治)

    题目链接:https://vjudge.net/problem/POJ-1741 题意:给出一棵树,求出树上距离不超过k的点对数量. 思路:点分治经典题.先找重心作为树根,然后求出子树中所有点到重心的 ...

  8. [转帖]【架构系列】龙芯loongson简介

    [架构系列]龙芯loongson简介 https://blog.csdn.net/SoaringLee_fighting/article/details/97759305 2019年07月30日 10 ...

  9. 南昌网络赛C.Angry FFF Party

    南昌网络赛C.Angry FFF Party Describe In ACM labs, there are only few members who have girlfriends. And th ...

  10. 基于Springboot后台,前台 vue.js 跨域 Activiti6 工作流(用到websocket技术) 的项目

    工作流模块----------------------------------------------------------------------------------------------- ...