eclipse使用git及github学习笔记
项目托管
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学习笔记的更多相关文章
- Git与GitHub 学习笔记
以下信息来源于网络资料,并进行整理与精简 Git是目前世界上最先进的分布式版本控制系统,和svn,vss等一样都是进行版本控制的. GitHub是一个软件项目的托管平台,相当于自己建立的 svn服务器 ...
- git和github学习笔记
1. 了解Git和Github 2. 使用Github 3. Git安装和使用 4. Git基本工作流程 5. Git初始化及仓库创建和操作 6. Git管理远程仓库 7. Github Pages ...
- Git与GitHub学习笔记(七)Windows 配置Github ssh key
前言 SSH是建立在应用层和传输层基础上的安全协议,其目的是专为远程登录会话和其他网络服务提供安全性的保障,用过SSH远程登录的人都比较熟悉,可以认为SSH是一种安全的Shell.SSH登录是需要用户 ...
- Git与GitHub学习笔记(三).gitignore文件忽略和删除本地以及远程文件
一.Git提供了文件忽略功能.当对工作区某个目录或者某些文件设置了忽略后,git将不会对它们进行追踪 HELP:如何在IntelliJ IDEA中使用.ignore插件忽略不必要提交的文件 问题:最近 ...
- Git与GitHub学习笔记(八)git如何同时同步提交到码云和GitHub上
前言: 今天github push代码一直push不上去,打算就备份一份代码带国内开源码云上. Github容易出现的情况是: 国内访问速度比较慢, 如果被墙掉的话,就直接没发使用了 如果开源个PHP ...
- Git与GitHub学习笔记(五)一次提交失败的记录
代码已经跟踪了,添加注释说明,但是总是添加不了 error: pathspec 'live-page'' did not match any file(s) known to git. 重复了好多遍, ...
- git and github学习笔记
1.git的状态分为working status,stage status和commit status.git diff查看的是working status和 stage status之间的不同,gi ...
- Git与GitHub学习笔记(六)使用 Github Pages 管理项目文档
前言 你可能比较熟悉如何用 Github Pages 来分享你的工作,又或许你看过一堂教你建立你的第一个 Github Pages 网站的教程.近期 Github Pages 的改进使得从不同的数据源 ...
- Git与GitHub学习笔记(一)如何删除github里面的文件夹?
按照以下步骤即可(本地删除) 1. git pull you git url2. git checkout 3. rm -r dirName4. git add --all5. git commit ...
随机推荐
- 使用Jmeter自带的 Http 代理服务器录制脚本
最近要测试某个模块的压力测试,所以使用Jmeter录制脚本 1. 打开JMeter工具 创建一个线程组(右键点击“测试计划”--->“添加”---->“线程组”) 创建一个ht ...
- UnderScore的使用实例记录
集合操作 _.range(),主要用于区间的获取操作.参数说明:(param1):范围上限,(param1,param2):起始及结束范围,(param1,param2,param3):起始结束范围, ...
- Maven-10: 使用maven-help-plugin描述插件
除了访问在线的插件文档之外,还可以借助maven-help-plugin来获取插件的详细信息.可以运行如下命令来获取maven-compiler-plugin2.1版本的信息: [INFO] Scan ...
- 浅谈TCP三次握手和四次挥手
学习三次握手和四次挥手前,先了解下几个基础的概念. Seq:数据段序号,我们都知道TCP是提供有序传输的,有序传输的基础就是数据段序号,接收方在收到发送方乱序包的情况下可以根据Seq进行重新排序,确保 ...
- 测试框架Mocha
NodeJS里最常用的测试框架估计就是mocha了.它支持多种node的assert libs, 同时支持异步和同步的测试,同时支持多种方式导出结果,也支持直接在browser上跑Javascript ...
- 转)sqlite 数据类型
一般数据采用的固定的静态数据类型,而SQLite采用的是动态数据类型,会根据存入值自动判断.SQLite具有以下五种数据类型: 1.NULL:空值. 2.INTEGER:带符号的整型,具体取决有存入数 ...
- RTMP规范协议
本文参照rtmp协议英文版,进行简单的协议分析 1.什么是RTMP 关于 Adobe 的实时消息协议(Real Time Messaging Protocol,RTMP),是一种多媒体的复用和分组的应 ...
- 高级软件工程2017第3次作业——结对项目:四则运算题目生成程序(基于GUI)
Deadline:2017-10-11(周三)21:00pm (注:以下内容参考集大作业 ) 前言 想过和别人一起探索世界吗?多么希望,遇到困难时,有人能一起探讨:想要懈怠时,有人推你一把:当你专注于 ...
- 20162302 实验一《Java开发环境的熟悉》实验报告
实 验 报 告 课程:程序设计与数据结构 姓名:杨京典 班级:1623 学号:20162302 实验名称:Java开发环境的熟悉 实验器材:装有Ubuntu的联想拯救者80RQ 实验目的与要求:1.使 ...
- 201621123068 《Java程序设计》第1周学习总结
1. 本周学习总结 本周学习了如何使用Java来编写程序,还没展开学习具体的语言,但是也花了大量的时间搞清楚Java运行的原理.明白了Java是一种可以跨平台运行语言,搞清了jdk,jre,jvm之间 ...