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 ...
随机推荐
- CucumberJS 资源
https://cucumber.io/docs/reference/javascript https://github.com/cucumber/cucumber-js
- 归并排序及优化(Java实现)
普通归并排序 public class MergeSort { /** * @param arr 待排序的数组 * @param left 本次归并的左边界 * @param mid 本次归并的中间位 ...
- nodejs简单数据迁移demo
近期做数据迁移,采用nodejs框架,数据库为mysql.作为一枚菜鸟,在编码过程中,遇到众多奇葩问题,感谢民少给予的支持. 由于旧数据库中的数据,在之前设计中存在众多不合理的情况,因此在数据迁移中, ...
- 页面内部DIV让点击外部DIV 事件不发生(阻止冒泡事件)
如标题的情况,经常发生,尤其是在一些弹出框上面之类的. <script> function zuzhimaopao(){ e.stopPropagation(); } </scrip ...
- 详解Tomcat线程池原理及参数释义
omcat线程池有如下参数: maxThreads, 最大线程数,tomcat能创建来处理请求的最大线程数 maxSpareTHreads, 最大空闲线程数,在最大空闲时间内活跃过,但现在处于空闲,若 ...
- Ajax与服务器(JSON)通信介绍
本文主要介绍使用Ajax与服务器(JSON)通信方法,谈谈Ajax提供的两类服务器通信手段:同步通信和异步通信.有需要的可以了解一下.毕竟这个时代出了很多东西,自动化构建工具,mvvm框架等等.Jav ...
- shiro权限框架(四)
4.1授权方式 Shiro 支持三种方式的授权 编程式:通过写 if/else 授权代码块完成: Subject = SecurityUtils.getSubject(); if(subject.ha ...
- YCSB测试HBase远程完全分布式集群
写在前面 本文只讲一个很简单的问题,YCSB对HBase集群的测试.虽然网上有很多介绍YCSB测试HBase的文章,但都是针对本地HBase伪分布式集群的.大家都知道,稍微正式一些的压测都会要求测试客 ...
- 通过运行一个tomcat容器来记录下初学docker常用的几个命令---容器篇
1.查看容器列表 显示正在运行的容器: [root@localhost HMK]# docker ps 显示所有容器,包括未运行的: [root@localhost HMK]# docker ps - ...
- alpha-咸鱼冲刺day7
一,合照 emmmmm.自然还是没有的. 二,项目燃尽图 三,项目进展 正在写登陆+注册ing 注册搞出来了!!!!!!!!QAQ(喜极而泣!!!!.jpg) 四,问题困难 数据流程大概是搞定了.不过 ...