本文记录了在使用Eclipse进行开发时,和Git相关的各种配置和使用说明。
文章目录如下:
目录
1 Git插件安装和配置
1.1 安装Git插件
1.2 Git配置
2 Eclipse使用Git
2.1 项目初始化到本地库
2.2 设置忽略提交到文件
2.3 设置本地库Git签名
2.4 Eclipse中Git图标含义
2.5 clone项目到本地
2.6 代码添加到暂存区
2.7 代码提交到本地库
2.8 代码提交到远程Git仓库
2.9 更新远程Git代码到本地
2.10 分支创建和切换
2.11 分支合并
2.12 解决分之冲突
如果Eclipse中没有Git插件,可以通过以下方式安装:
方式一:从Eclipse插件市场下载安装。
打开Eclipse,Help—>Eclipse Marketplace…,输入EGit,找到EGit,点击Install即可。
方式二:指定插件URL下载安装。
打开Eclipse,Help—>Install New Software…
点击Add,在Name中输入EGit,Location中输入:http://download.eclipse.org/egit/updates-4.1/,点击OK。
(注:关于url-->在浏览器地址栏输入http://wiki.eclipse.org/EGit/FAQ#Where_can_I_find_older_releases_of_EGit.3F,在页面上寻找与自己eclipse版本对应的EGit插件版本,然后找到对应EGit版本的url)
点击Next,直到Finish。安装完成后需要重启Eclipse。
1)用户配置
安装好Git插件后,先进行用户配置(用户名和邮箱)
1.点击Preferences》Team》Git>Configuration
2.点击Add Entry,在弹出框里面输入key和value的值
①名字的key :user.name ; value:是你的github用户名。
②邮箱的key:user.email ; value:你的登陆GitHub邮箱账号。
以后你使用git提交代码时候,eclipse会自动提取这些信息,和代码一起发送到git远程仓库。
2)修改Git地址、用户、密码
1. 修改Url
Window > Preferences > Team > Git > Configuration > Repository Settings
2. 修改用户名和密码
Window > Preferences > General > Security > Secure Storage > Contents
1) 在Eclipse项目上右键->Team->Share Project,选择Git
2)勾选选项:Use or create repository in parent folder of project
3)选择要创建git仓库的项目,点击Create Repository按钮,点击Finish
创建完成
对于和代码本身无关的,只是Eclipse本身的配置文件,以及编译的class文件,不需要提交到git仓库来进行git管理和追踪(因为同一个团队中很难保证大家使用相同的IDE工具,也就不能保证项目工程的特定文件一致,若要把这些文件也纳入到Git管理中,势必会造成冲突),因此可以在git中设置忽略。
通常需要进行忽略的文件有:
.classpath文件
.project文件
.settings目录下的所有文件
若要设置忽略某文件,只需在要忽略的文件上鼠标右键Team->Ingnore,将文件加入忽略。
设置了忽略文件之后,会在生成一个.gitignore文件,如下所示:
GitHub官网给出了Java开发忽略哪些文件的模板:https://github.com/github/gitignore/blob/master/Java.gitignore
可以在Eclipse中手动指定哪些文件忽略,也可以配置Git选项,引入忽略文件配置模板。
模版内容如下(官网最新内容可能有所改动):
# 编辑文件
*.class
# 日志文件
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# 虚拟机临时文件
hs_err_pid*
.classpath
.project
.settings
target
将GitHub官网给出的模板文件内容放到本地(如:D:\greenSoft\git\Java.gitignore),可以在此基础之上编辑内容增加或更改要忽略的文件和目录:
设置好之后重启Eclipse。
Eclipse设置Window->Preferences->Git->Configuration
Eclipse会自动搜索到本机的GIt仓库地址,选择所需配置项目的Git仓库,选择好后,点击Add Entry...
在弹出框中增加user.name和值
重复上一步,添加user.email
Git管理的示例项目
图标含义说明:
1 | 已纳入版本控制,目录下有未提交的修改 |
2 | 已纳入版本控制,目录下有未提交的修改 |
3 | 文件已提交到本地库,且工作区文件与本地库文件内容一致 |
4 | 新建的文件,未纳入版本控制 |
5 | 被版本控制忽略的文件 |
6 | 已纳入版本控制,文件有未提交的修改 |
7 | 已纳入版本控制,提交过本地库,现在有更改,并提交到了暂存区 |
8 | 在7的基础上,在工作区又对文件进行了修改 |
9 | 未曾提交到过版本库,但已提交到了暂存区,由状态4提交暂存区而来 |
10 | 当意图把已经被 git 管理的文件取消其管理状态时,该文件会在暂存区处于这种状态 |
11 | 在试图合并两个分支的时候,发生冲突,文件会进入这种状态 |
12 | 无变化的文件 |
1)colne项目
在 Git Repositories 视图里面点击 Clone a Git repository 选项。
选择Clone URI,下一步
输入配置信息,点击Next
选择分支,我这里选择master(主干分支),然后点击Next
选择拉取的代码在本地存放的位置,然后下一步
完成之后,可以看到Eclipse的 Git Repositories 视图 里多了一个recommend-all项目,本地存放目录也有了该项目
2)导入项目
将该项目导入工作空间:import -->Git --> Existing local repository,找到克隆到本地的项目目录导入。
在文件上右键->Team->Add to Index
在要提交到本地库的文件上鼠标右键->Team->Commit...
也可以直接跳过(实际没跳过)加入暂存区的动作直接进行提交。
首先设置一下提交视图,选择菜单Window-->Preferences-->Team-->Git-->Committing 不选择第一项复选框。
右键项目Team-->Commit...
在Git Staging窗口选择要提交的文件,填写注释,点击Commit按钮提交到本地库
首次提交后,就会自动生成master分支,此刻项目文件上没有了问号,而是有了一个仓库图标:
首先在远程Git服务(比如GitHub或码云)中创建一个仓库,用于存放项目代码。以GitHub为例,登陆Git,创建一个仓库。
仓库名自定,创建完成后,点击进入可看到仓库信息,其中最重要的就是地址:
eclipse中项目右键选择Team-->Remote-->Push...弹出窗口如下:
URI填写Git仓库地址;Protocol为遵循的协议(Git支持Https和ssh);User和Password分别为GitHub登录账号和密码。
点击Next,选择Source ref为master
401 Authorization Required报错处理
在进行Git commit的时候, 报出了401未授权的错误, 可能为eclipse的bug,可尝试按如下步骤操作解决:
a. Eclipse选择Help -> Install New Software...
b. 在 Work with:中填上 http://download.eclipse.org/mpc/releases/1.5.1a , 回车
c. 勾选"EPP Marketplace Client" , Next直至Finish
d. 重启后, 再进行提交, 问题不再出现, 可以成功提交。
选中项目右击:选择team-->fetch from Upstream
如果有版本改动的话,项目是有箭头的,如果没有什么版本改动的话,项目是没有箭头。
-- 如果箭头向下表明你落后了远程仓库几个版本
通过项目右击:选择team-->Synchronize WorkSpace 可以查看当前工作空间内容的差异情况。
处理方式:选中项目右击:选择team-->pull,表示从远程仓库"同步"代码,pull完成后 箭头向下 图标消失了。
-- 如果箭头向上则表明你比远程仓库的版本提前了几个版本,就是说你有提交到本地仓库,但是没有push到远程仓库
处理方式:选中项目右击:选择team-->Push Branch...,表示是向远端仓库提交代码。
项目右键-->Team-->Switch To
选择New Branch...
当前分支切换到了新创建的分支
项目右键-->Team-->Switch To,选择other...
此时Remote Tracking 有 master和java8base-dev分支,当遇到Remote Tracking 里面没有自己或者团队成员新创建的分支时处理方式:选中项目右击:选择team-->fetch from Upstream 就能从远程仓库 获取最新版本到本地(包括代码、分支)。
fetch from Upstream 后,能看到Remote Tracking 里面有很多分支了,选择自己想切换的分支继续确定。
在Eclipse工作空间的项目下右键tema选择merge然后选择你要合并的分支;点击ok
git远程提交数据时若有冲突,则远程服务会拒绝提交
此时需要先拉取远程库的代码,解决完冲突,再提交。
拉取远程库代码后可以看到冲突文件的信息
也可以在冲突文件上右键选择,Team-->Merge Tool,以图形化对比的方式查看冲突信息
对比视图
左侧的为本地库代码,可以修改,右侧的为远程库代码不能修改(可以进行复制操作)。
修改完成后打开Git Staging视图,将冲突文件从Unstaged Changes窗口拉取到Staged Changes窗口里,再选择Commit and Push按钮进行提交即可。