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 ...
随机推荐
- WPF介绍
WPF 为Windows Presentation Foundation的首字母缩写 ,中文译为“Windows呈现基础”.WPF是微软新一代图形系统,运行在.NET Framework 3.0及以上 ...
- Git分支(1/5) -- 基本命令
把所有的变化都放在master分支并不是最好的做法. 建议的做法是把变化放在分支里面. 至少应该准备一个feature分支之类的, 把变化都隔离开来, 然后等到所有的功能都稳定之后再合并到master ...
- Office远程代码执行漏洞(CVE-2017-11882)复现
昨晚看到的有复现的文章,一直到今天才去自己复现了一遍,还是例行记录一下. POC: https://github.com/Ridter/CVE-2017-11882/ 一.简单的生成弹计算器的doc文 ...
- 51ak带你看MYSQL5.7源码1:main入口函数
从事DBA工作多年 MYSQL源码也是头一次接触 尝试记录下自己看MYSQL5.7源码的历程 目录: 51ak带你看MYSQL5.7源码1:main入口函数 51ak带你看MYSQL5.7源码2:编译 ...
- 收集nodejs经典组件:
mysql功能简介:mysql- node.js平台mysql驱动,支持事务.连接池.集群.sql注入检测.多做参数传递写法等特性.主页地址:https://github.com/felixge/no ...
- 走近webpack(1)--多入口及devServer的使用
上一篇文章留下了一些问题,如果你没看过上一篇文章,可以在我的博客里查找,或者直接从这篇文章开始也是没问题的. const path = require('path'); module.exports= ...
- 笔记:Struts2 的 JSON 插件
安装插件,将其复制到Web应用的WEB-INF/lib 目录下 Struts2-json-plugin-2.3.16.3.jar json-lib-2.3-jdk15.jar commons-bean ...
- 基于hi-nginx的web开发(python篇)——表单处理和文件上传
hi-nginx会自动处理表单,所以,在hi.py框架里,要做的就是直接使用这些数据. 表单数据一般用GET和POST方法提交.hi-nginx会把这些数据解析出来,放在form成员变量里.对pyth ...
- Java NIO系列教程(六) 多路复用器Selector
多路复用器Selector是Java NIO编程的基础,熟练地掌握Selector对于掌握NIO编程至关重要.多路复用器提供选择已经就绪的任务的能力.简单来讲,Selector会不断地轮询注册在其上的 ...
- 如何测试一个WEB的输入框?
WEB输入框是B/S架构系统中页面使用非常频繁的控件,比如我们登录一个网站,输入 用户名和密码的控件都是输入框,比如使用百度搜索,在输入搜索内容的控件也是输入框,比如网购一个物品,我们需要输入购买的数 ...