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 ...
随机推荐
- New Windows 10 SDK - Multi-instance UWP apps
概述 前面一篇 About Windows 10 SDK Preview Build 17110 中,我们简单介绍了 Multi-instance UWP Apps,今天结合开发过程详细讲解一下. 在 ...
- 【Java一看就懂】浅克隆和深克隆
一.何为克隆 在Java的体系中,数据类型分为基本数据类型和引用数据类型. 基本数据类型包括byte,short,int,long,float,double,boolean,char 8种,其克隆可通 ...
- Python上下文管理器
在Python中让自己创建的函数.类.对象支持with语句,就实现了上线文管理协议.我们经常使用with open(file, "a+") as f:这样的语句,无需手动调用f.c ...
- 关于MD5+salt盐加密
MD5+salt 最近浏览浏览一些帖子时,发现曾经引以为傲的md5加密算法,虽然是无法解密的算法,但是现在可以通过FELHELP(谷歌浏览器插件)或者一些字典可以套出来,.但是当md5+salt值时, ...
- 关于html文档的规范
1. <!DOCTYPE html> 告诉浏览器该文档使用哪种html或xhtml的规范 2. 元数据中的X-UA-Compatible <meta http-equiv=" ...
- 笔记:Maven 仓库和插件配置本机私服
通过配置POM中的配置仓库和插件仓库,只在当前项目生效,而实际应用中,我们希望通过一次配置就能让本机所有的Maven项目都使用自己的Maven私服,这个时候我们需要配置 settings.xml文件, ...
- 学习java第一章
本人是一名5年工作的人了,出来社会也比较早,工作经验比起刚刚出社会的大学生要和很多了,知道社会的现实与无奈,我为什么选择想学java昵,肯定受到了朋友的影响的,接下来就讲讲我学习java的过程. 1. ...
- React 组件间通讯
React 组件间通讯 说 React 组件间通讯之前,我们先来讨论一下 React 组件究竟有多少种层级间的关系.假设我们开发的项目是一个纯 React 的项目,那我们项目应该有如下类似的关系: 父 ...
- Python中四种样式的99乘法表
1.常规型. #常规型 i=1 while i<=9: j=1 while j<=i: print(''%d*%d=%2d''%(i,j,i*j),end='') i+=1 #等号只是用来 ...
- 制作Linux登录欢迎界面
1.登录提示语: 将提示语写入/etc/motd 文件 _ooOoo_ o8888888o 88" . "88 (| -_- |) O\ = /O ____/`---'\____ ...