Git学习笔记(2)-Eclipse中Git插件使用
目前我使用的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插件使用的更多相关文章
- [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar中的类解压后放在运行jar中
前文: [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar打在jar包中 使用7z打开压缩包,查看所有依赖的jar都被解压以包名及class的方式存储在了运行jar中,此时jar的 ...
- [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar打在jar包中
本文需要参考前文: [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar在子目录中 上文是导出的运行的依赖jar被放在了子目录中,本文是将依赖jar放在可运行jar的本身,这样发布的 ...
- [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar在子目录中
工程创建可参考前文: [学习笔记] 在Eclipse中使用Hibernate,并创建第一个工程,数据库为Oracle XE 在工程上鼠标右键: 找到java 选择 Runable JAR file N ...
- [学习笔记] 在Eclipse中导入项目
参考前文:[学习笔记] 在Eclips 中导出项目 选择已经导出的文件: 导入之后,项目结构如下: 至此,完成.
- git学习四:eclipse使用git提交项目
支持原创:http://blog.csdn.net/u014079773/article/details/51595127 准备工作: 目的:eclipse使用git提交本地项目,提交至远程githu ...
- git学习五:eclipse使用git下载项目
原文:http://blog.csdn.net/u014079773/article/details/51597213 准备工作: 目的:从远程仓库github上down所需的项目 eclipse使用 ...
- Git学习笔记(一)Git初识及基本操作
详细完整教程:官方文档,廖神Git教程,武sir 一.什么是Git? 定义:Git是分布式版本控制系统. 1.1什么是版本控制 我们可以回想以下,在我们上学毕业要写论文或是准备一份演讲稿的时候,都会用 ...
- [学习笔记] 在Eclipse中添加用户库 Add User Libraries ,在项目中引用用户库
如果还没有安装Eclipse, 则请参考前文: [学习笔记] 下载.安装.启动 Eclipse(OEPE) 添加用户库 本文主要介绍在项目中直接使用第三方库的情况.就是把第三方的jar文件直接放到某 ...
- [学习笔记] 在Eclipse中使用Hibernate,并创建第一个工程
在Eclipse中使用Hibernate 安装 Hibernate Tools 插件 https://tools.jboss.org/downloads/ Add the following URL ...
随机推荐
- vue中表格el-table-column数据翻译字段
<el-table-column prop="isstate" label="状态"></el-table-column> 以上是显示后 ...
- python-Web-django-商城-session存入数据库
utils: '''用户session''' import datetime from app01.models import Sessions ''' iii = request.session.s ...
- 【HANA系列】SAP HANA SQL IFNULL和NULLIF用法与区别
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA SQL IFN ...
- 感知器做二分类的原理及python实现
本文目录: 1. 感知器 2. 感知器的训练法则 3. 梯度下降和delta法则 4. python实现 1. 感知器[1] 人工神经网络以感知器(perceptron)为基础.感知器以一个实数值向量 ...
- 如果Mysql插入字符始终乱码怎么办?
1.找到my.cnf [root@Sliver-Code ~]# vi /etc/my.cnf 加入下面三行语句 [client] default-character-set=utf8 [mysqld ...
- 【转载】VMware Workstation网络说明
1.什么是bridged(桥接模式)?答:在这种模式下,使用VMnet0虚拟交换机,虚拟操作系统就像是局域网中的一台独立的主机,与宿主计算机一样,它可以访问网内任何一台机器.在桥接模式下,可以手工配置 ...
- Spring IoC的形象化理解
1.IoC(控制反转) 首先想说说IoC(Inversion of Control,控制反转).这是spring的核心,贯穿始终.所谓IoC,对于spring框架来说,就是由spring来负责控制对象 ...
- Linux下kafka集群搭建过程记录
环境准备 zookeeper集群环境kafka是依赖于zookeeper注册中心的一款分布式消息对列,所以需要有zookeeper单机或者集群环境. 三台服务器: 172.16.18.198 k8s- ...
- [转帖]VIM常用快捷键
VIM常用快捷键 https://www.cnblogs.com/markleaf/p/7808817.html 快捷键能够显著的提高工作效率 一.移动光标 h,j,k,l 上,下,左,右ctrl-e ...
- Java判断指定日期是否为工作日
Java判断指定日期是否为工作日 转自:https://www.jianshu.com/p/966659492f2f 转:https://www.jianshu.com/p/05ccb5783f65转 ...