项目托管

1.首先需要在github上建立一个远端仓库 

点击Create repository后,会在github上建立相应的git仓库,并会出现如下界面: 

复制https或者ssh的仓库地址,远端仓库的操作即告一段落。

2.eclipse创建项目。而后在项目上右键–>Team–>Share Project,会打开如下界面: 

此界面需要我们对该项目的本地git仓库进行配置,可以使用当前项目所在目录作为该项目的git仓库,也可以自定义其他位置的目录作为git仓库。需要说明的是,如果自定义其他位置作为git仓库,那么将项目托管到其定义的位置后,项目原本所在的workspace下就没有该项目了。这里我使用项目所在的workspace下的项目根目录作为git仓库,因此需要勾选use or create repository in parent folder of project。接着就会出现如下的界面: 

勾选项目,并点击create Repository按钮新建.git文件夹,完成git仓库的配置。

此时查看项目,可以看到如下的显示: 

这里需要先说说HEAD这个概念,可以理解为游标或者索引。它可以记录对文件操作的相关版本信息,我们可以依据HEAD的信息来切换到我们想要获取的版本。可以参考上一篇文章所使用的git reset命令。 
这里显示NO-HEAD,说明项目的文件还没有加入到git的版本管理中,于是我们需要再次右键–>Team–>Commit,对项目下的文件进行提交,将其提交到本地的git仓库中,如下图所示: 
 
填写注释,选择要提交的文件,点击commit and push,这样就会将文件提交到本地的仓库并且向远端仓库进行推送。之后会出现如下的界面: 
 
这就需要用到我们之前从github上复制的地址了,将其粘贴到URI处,然后一路Next下去,直到Finish。而后会出现向远端仓库推送的界面,如下: 
 
等待进度条走到头,即完成了向远端仓库推送的操作。 
此时再看项目,可以看到已经不再是NO-HEAD了,而是在master主分支上了,说明已经和主分支建立了关联。 

进入github中我们新建的仓库,即可看到已经托管成功的文件了。

新增文件

在src目录下新增HelloGit的java文件,而后会看到文件名及其上层目录上都带有一个问号,这表明该文件没有被添加到git仓库中。我们可以进行如下操作将其添加到git本地及远端仓库。右键–>Team–>Synchronize workspace,会打开同步的操作视图,如下: 

接着就和上面说过的提交一样,点击右键–>commit–>填写注释–>commit and push,这样新增的文件就提交到本地和远端的git仓库中了。

在个人分支进行开发

通常我们需要从master分支上新建个人分支,然后在个人分支上进行开发,最后再将个人分支的修改合并到master分支上。所以我们可以通过如下操作来新建个人分支并将其同步拉取到本地进行开发使用。 
在github上新建个人分支,如下: 

打开eclipse,右键–>Team–>pull,会显示如下的界面: 
 
点击OK,即将远端建立的earl的个人分支同步拉取到本地了。

此时我们需要切换到个人分支进行开发。右键–>Team–>switch to–>other,这时会出现如下界面: 
 
点击checkout,在下一界面点击checkout as new local branch,而后Finish。这一系列的操作完成后,就切换到我们的个人分支上了,可以看到项目名后面的分支不再是master,而是earl了。

分支合并

当我们在自己的分支下完成了代码的编写,测试确认无误后,需要将其提交到master分支上。通常我们不直接提交master,而是提交到远端的个人分支下,然后将此分支与master进行merge操作。下面我们就来看看如何进行个人分支与master分支的合并。 
1. 在项目中新建系统配置文件system.config.properties,向其添加数据库的连接信息,再提交到远端的个人分支下。 
2. 打开github上的远端仓库,选择提交system.config.properties文件的个人分支,点击new pull request按钮,进入如下界面
可以在此界面看到本次提交的合并请求涉及到哪些文件,这些文件有哪些内容有过改动。填写本次合并请求的描述信息,点击create pullrequest按钮,会出现下面的界面: 

确认后点击merge pull request按钮,填写描述,再点击confirm merge按钮,完成合并操作。 
此时切换到master分支,即可看到该配置文件已经合并到其中。

冲突的解决

在实际开发过程中,常常会遇到多人修改同一文件的情况,此时如果多人向同一文件进行内容修改并想将其合并到master中时,就会出现冲突的情况,如果需要将修改的内容加入到master中,那么就需要将冲突解决后再进行合并。下面我们来看看如何对冲突的情况进行解决。 
1. 模拟多人修改同一文件的情景。在远端仓库再新建一个分支,也将其拉取到本地。 
2. 在本地的该分支上修改分支合并中涉及到的system.config.properties文件,保存并提交到远端分支。 
3. 在github远端仓库上选择该分支,并点击new pull request按钮,会出现如下界面:可以看到,当前不能对该分支与master分支进行自动合并,原因是两个分支之间存在冲突,需要解决冲突后才可进行合并。填写完描述后,点击create pull request按钮,会打开如下界面此页面用于解决分支见文件的冲突,可以使用web编辑器或者命令行来进行冲突的解决,此处我们使用web编辑器进行修改。 
4. 点击resolve conflicts按钮,打开修改页面,如下:
我们进行修改后,点击mark as resolve按钮,将冲突文件标记为合并,然后点击commit changes按钮,将此文件进行提交。提交后即可看到正常合并分支的操作页面,此时按照分支合并的操作来进行即可完成该分支到master的合并。

后记

eclipse基本上已经集成了git命令行的大部分操作,对于不熟悉命令行操作的童鞋来说,掌握eclipse对git的操作也可以提升自己的工作效率。不管白猫还是黑猫,抓到老鼠就是好猫。不管命令行还是GUI,能实现版本管理就是好工具。eclipse对于git的操作还有很多,我将持续更新对其的学习总结。

eclipse使用git及github学习笔记的更多相关文章

  1. Git与GitHub 学习笔记

    以下信息来源于网络资料,并进行整理与精简 Git是目前世界上最先进的分布式版本控制系统,和svn,vss等一样都是进行版本控制的. GitHub是一个软件项目的托管平台,相当于自己建立的 svn服务器 ...

  2. git和github学习笔记

    1. 了解Git和Github 2. 使用Github 3. Git安装和使用 4. Git基本工作流程 5. Git初始化及仓库创建和操作 6. Git管理远程仓库 7. Github Pages ...

  3. Git与GitHub学习笔记(七)Windows 配置Github ssh key

    前言 SSH是建立在应用层和传输层基础上的安全协议,其目的是专为远程登录会话和其他网络服务提供安全性的保障,用过SSH远程登录的人都比较熟悉,可以认为SSH是一种安全的Shell.SSH登录是需要用户 ...

  4. Git与GitHub学习笔记(三).gitignore文件忽略和删除本地以及远程文件

    一.Git提供了文件忽略功能.当对工作区某个目录或者某些文件设置了忽略后,git将不会对它们进行追踪 HELP:如何在IntelliJ IDEA中使用.ignore插件忽略不必要提交的文件 问题:最近 ...

  5. Git与GitHub学习笔记(八)git如何同时同步提交到码云和GitHub上

    前言: 今天github push代码一直push不上去,打算就备份一份代码带国内开源码云上. Github容易出现的情况是: 国内访问速度比较慢, 如果被墙掉的话,就直接没发使用了 如果开源个PHP ...

  6. Git与GitHub学习笔记(五)一次提交失败的记录

    代码已经跟踪了,添加注释说明,但是总是添加不了 error: pathspec 'live-page'' did not match any file(s) known to git. 重复了好多遍, ...

  7. git and github学习笔记

    1.git的状态分为working status,stage status和commit status.git diff查看的是working status和 stage status之间的不同,gi ...

  8. Git与GitHub学习笔记(六)使用 Github Pages 管理项目文档

    前言 你可能比较熟悉如何用 Github Pages 来分享你的工作,又或许你看过一堂教你建立你的第一个 Github Pages 网站的教程.近期 Github Pages 的改进使得从不同的数据源 ...

  9. Git与GitHub学习笔记(一)如何删除github里面的文件夹?

    按照以下步骤即可(本地删除) 1. git pull you git url2. git checkout 3. rm -r dirName4. git add --all5. git commit  ...

随机推荐

  1. 解决新版的vue-cli后无法通过ip访问vue项目

    今天遇到个问题,之前一直没遇到过,通过vue-cli脚手架搭建的项目,只能通过localhost访问,不能通过IP地址访问. 这是由 webpack 导致的,2017年11月12日的时候 webpac ...

  2. Mac安装pycharm 的下载链接和破解方法

     PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试.语法高亮.Project管理.代码跳转.智能提示.自动完成.单元测试.版本控制 ...

  3. Mysql5.7动态修改innodb_buffer_pool_size

    SELECT @@innodb_buffer_pool_size,@@innodb_buffer_pool_chunk_size,@@innodb_buffer_pool_instances; SET ...

  4. 快速排序及优化(Java实现)

    普通快速排序 找一个基准值base,然后一趟排序后让base左边的数都小于base,base右边的数都大于等于base.再分为两个子数组的排序.如此递归下去. public class QuickSo ...

  5. phpStorm安装方法

    1)下载 http://big2.h5gamen.com/soft/jetbrainscrack-2.6.2.zip 放到phpstorm安装目录下的lib文件夹 如放到f盘 F:\PhpStorm ...

  6. Liquibase的简单使用

    LiquiBase是一个用于数据库重构和迁移的开源工具,通过日志文件的形式记录数据库的变更,然后执行日志文件中的修改,将数据库更新或回滚到一致的状态.它的目标是提供一种数据库类型无关的解决方案,通过执 ...

  7. Mycat 分片规则详解--一致性hash分片

    实现方式:基于hash算法的分片中,算法内部是把记录分片到一种叫做"bucket"(hash桶)的内部算法结构中的,然后hash桶与实际的分片节点一一对应,从此实现了分片.路由的功 ...

  8. hadoop2.6.5运行wordcount实例

    运行wordcount实例 在/tmp目录下生成两个文本文件,上面随便写两个单词. cd /tmp/ mkdir file cd file/ echo "Hello world" ...

  9. Algorithm --> 求阶乘末尾0的个数

    求阶乘末尾0的个数 (1)给定一个整数N,那么N的阶乘N!末尾有多少个0?比如:N=10,N!=3628800,N!的末尾有2个0. (2)求N!的二进制表示中最低位为1的位置. 第一题 考虑哪些数相 ...

  10. xml解析多个结点方法(C#)

    解析多个结点的XML文件,格式如下: <?xml version="1.0" encoding="utf-8"?> <response> ...