开始前请配置一下相关软件(并不要求版本一致):
OS: Windows7 Git:2.19.1 IDEA: 2017.2.2
注意:本案例源码GitHub仓库
Git安装 Git相关配置
头像下拉箭头–>Setting–>SSH and GPG keys–>new SSH Key,将 标题随便写,key放入Git生成的SSH公钥。
注意:id_rsa.pub直接用文本编辑器打开即可。
File–Other Setting–>Default Settings–>Version Control–>Git
配置本地安装Git所在目录选择使用本地Git SSH秘钥文件测试是否成功。对新建项目使用Git版本管理控制工具:
注意:项目的本地Git仓库默认位置为项目路径下。
如果远程仓库没有对应仓库: 如果远程仓库有对应仓库:项目右键–>Git–>Repository–>Push; 指定对应Repository,然后Push.
URL:对应GitHub上Repository的URL
VCS–>Checkout from Version Control–>Git
问题一:在检出项目时出现以下提示,解决方案。
问题二:Maven项目src下的代码不显示,解决方案。
当我们对本地代码有修改时,如增加、修改、删除等,为了让同事知道我们的最新代码,我们就需要将代码上传至Git远程仓库中,代码从本地上传至远程仓库就需要push,步骤如下:
提交至本地仓库–>commit推送到远程仓库–>push例如我们在项目中增加一个HelloWorld类,并且修改README.md文件的内容; 将新增文件提交到本地仓库:项目右键–>Git–>Commit Directory 填写提交信息,点击commit 推送到远程仓库:项目右键–>Git–>Repository–>Push 可以看到本地提交了几次,这里我不小心多提交了次。确认无误点击push; IDEA右下角会出现以下提示,说明成功推送到远程仓库中: 查看GitHub中,文件成功上传至GitHub并且有了本次提交记录:
考虑一个问题,如果同事也修改了README.md文件,那么我们直接推送就会覆盖他的代码,为了避免这个问题,我们需要在push之前将远程仓库上最新的代码下拉至本地,这就是pull. 我们在新检出的项目IDEA_Git02中下拉IDEA_Git刚刚推送的代码:项目右键–>Git–>Repository–>Pull
在IDEA中创建新的分支:项目右键–>Git–>Repository–>Branches…–>New Branch 填写分支名称,点击OK 点击IDEA右下角:Git:dev就可以知道分支已经建好,且当前分支是dev;
注意:此时分支是在本地存在,远程仓库并不存在,因此我们需要利用我们前面讲的提交,推送到远程仓库。 推送后我们可以在远程仓库中看到dev分支:
点击IDEA右下角:Git:dev我们可以看到本地有dev和master两个分支且当前分支为dev; 点击master分支上的小箭头,选择Checkout就会切换到master分支上。
当我们在dev分支上做了修改,那么我们要把dev上的修改合并到master分支上: 将当前分支切换至master 选择dev分支–>Merge
这里分Merge的意思是将选中分支合并到IDEA当前所在分支。
查看master分支,发现已经合并。
在某些情况下我们需要删除某些分支,那么我们需要在IDEA中删除本地分支,再推送至远程仓库: 我新建一个uat分支,我们删除这个分支。 点击uat分支–>Delete 删除成功。
在IDEA中操作GIt仓库远程版本回退步骤如下:
修改相关文件并提交作为版本回退测试: 打开Git历史提交记录:项目右键–>Git–>Show History3. 复制版本号:复制要回退到的旧版本号和当前最新版本号 版本号右键–>Copy Revision Number 当前版本号:4bd216941c9fb973ba1d65c9950e1cab1cf2cd2f 旧版本号:d35a96ba85a27a4e78c17c60478e6bbc806d1b78 4. 版本回退:右键项目–>Git–>Repository–>Reset HEAD… 在这里我们需要了解Reset Type:hard、soft、mixed的区别 此时没有改变提交,但是Push会提示冲突错误,解决办法如下两种方法: 方法一:使用Hard会退本地代码,使用Git命令强制提交,本方法会将原有提交记录全部抹除
git push -f 重新使用Hard回退操作,会退回最新版本,并且push到远程仓库。 方法二:先使用Hard操作回退本地代码,再使用Mixed操作回退至新版本,再提交push。该方法本质上相当于一次修改提交而已。 使用Mixed将版本号回退到最新版本号
在Eclipse中我们可以很方便的与本地和远程分支对比文件的改变,IDEA中也可以做到这样的功能,不过不同的一点是,Eclipse中是实时维护本地远程分支与远程分支的信息,而IDEA不是,需要手动Fetch远程仓库分支的索引。 首先在IDEA_Git02修改文件并提交到远程分支: 切换回IDEA_Git:
执行fetch更新本地远程分支代码索引:右键项目–>Git–>Repository–>Fetch 进行文件对比:右键项目或右键要对比的文件–>Git 这里需要解释在四个选项的含义: Compare with the Same Repository Version:与本地仓库相同版本比较Compare with Latest Repository Version:与本地仓库最新版本比较,注意这里的本地仓库维护这远程仓库的索引信息,如果Fetch后的最新版本就是远程仓库的最新版本。Compare with…:与选择的版本比较Compare with Branch:与选择的分支比较了解了以上四个选项的意义就可以自由的对比了,无论是与远程版本对比还是本地版本对比。我们这里主要使用第四个选项与远程master分支比较。 我们可以在文件对比工具中进行提前合并等等操作。
首先我们在IDEA_Git并提交至远程仓库: IDEA_Git02上修改同一文件并提交至本地仓库: 在IDEA_Git02上pull文件,出现文件合并工具,根据需要选择: 根据差异进行合并,并提交至远程仓库。