8.1、配置Git忽略文件

8.1.1、忽略文件的原因

在使用 IDE 工具时,会自动生成一些和项目源码无关的文件,所以可以让 Git 忽略这些文件。

此外,把这些无关文件忽略掉,还能够屏蔽不同 IDE 工具之间的差异。

8.1.2、创建忽略规则文件

如上图所示,在用户家目录下创建了一个忽略规则文件 git.ignore(前缀名随便起,后缀必须是 .ignore,推荐命名为 git.ignore)。

实际上,这个忽略规则文件在任意位置创建都可以,但为了方便让 ~/.gitconfig 文件引用,推荐放在用户家目录下。

# Compiled class file
*.class # Log file
*.log # BlueJ files
*.ctxt # Mobile Tools for Java (J2ME)
.mtj.tmp/ # Package Files
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid* .classpath
.project
.settings
target
.idea
*.iml

8.1.3、引用忽略规则文件

如上图所示,在 .gitconfig 文件(该文件的来源见 3.2节 )中,引用(刚创建的)一个忽略规则文件。

git config --global core.excludesfile 忽略规则文件路径/git.ignore

注意:所引用的文件路径分隔符,要使用“正斜线(/)”,不要使用“反斜线(\)”。

此外,必须使用执行命令的形式来设置引用文件,直接在 .gitconfig 文件中编辑文本内容会导致引用失败,出现下面的警告:

warning: unable to access '‪C:/Users/liaojy/git.ignore': Invalid argument

8.2、定位Git程序

8.2.1、使用IDEA创建一个项目

如上图所示,创建一个新项目。

如上图所示,该新项目是一个 maven 项目。

如上图所示,该项目的名称设置为 git-test 。

如上图所示,设置该项目所在的路径。

8.2.2、选择本地已安装的Git程序

如上图所示,打开IDEA的 Settings(设置)界面。

如上图所示,在 Settings(设置)界面中,找到 Git 的设置界面。

如上图所示,选择了一个本地已安装的Git程序,并且测试该 Git 程序是正常的。

8.3、初始化本地库

8.3.1、查看项目的文件夹

如上图所示,右击项目名,然后点击“Show in Explore”,便能查看项目的文件夹。

如上图所示,在项目的文件夹中,并没有“.git”子文件夹,说明该项目还没有被 Git 所管理到。

8.3.2、使用IDEA初始化本地库

如上图所示,在 VCS(Version Control Settings)菜单中点击“Create Git Repository”选项。

在“Create Git Repository”弹窗中,会默认选中当前项目,此时只需要点击“OK”,即可将该项目初始化为 Git 本地库。

8.3.3、确认初始化本地库已成功

如上图所示,在项目的文件夹中,已存在“.git”子文件夹,说明该项目已成功被 Git 所管理到。

注意:如果 8.1 节的忽略规则文件的配置操作是成功的话,在“.diea”目录中是没有".gitignore"的;

否则,IDEA 会在“.diea”目录中,自动生成一个该项目的忽略规则配置文件".gitignore",在这个文件中也可以配置要 Git 忽略的文件。

如上图所示,文件名是红色,说明该文件已被 Git 检测到,但是还没被 Git 追踪(即该文件还没被添加到暂存区)。

8.4、添加到暂存区

注意:必须先初始化本地库后,才能将文件添加到暂存区。

8.4.1、将某个文件添加到暂存区

如上图所示,右击要添加到暂存区的文件,在菜单栏里选择“Git”->“+Add”,即可将该文件添加到暂存区。

如上图所示,将“pom.xml”文件添加到暂存区后,颜色变成了绿色,即说明该文件已成功被 Git 追踪,但还没有被提交到本地库。

注意:如果默认的文件状态颜色区分不明显,可以在“Settings”中自定义设置文件状态的颜色:

8.4.2、创建一个文件

如上图所示,新创建了一个Java文件“GitTest”,此时 Idea 便会自动弹窗提示是否将这个新创建的文件加入暂存区。

注意:本例出于演示需要,点击了“Cancel”;在实际情况中,点击“Add”即可。

如上图所示,虽然该 Java 文件还没加入暂存区,但是并不影响其编译运行使用。

注意:如果在编译运行时报错“Error:java: 错误: 不支持发行版本 5”,请参考该解决方案

8.4.3、将整个项目添加到暂存区

如上图所示,右击要添加到暂存区的项目,在菜单栏里选择“Git”->“+Add”,即可将该项目所有文件(忽略文件除外)添加到暂存区。

如上图所示,将整个项目添加到暂存区后,该项目所有文件(忽略文件除外)的颜色变成了绿色,即说明这些文件已成功被 Git 追踪,但还没有被提交到本地库。

8.5、提交到本地库

注意:必须先将文件添加到暂存区后,才能将文件提交到本地库。

8.5.1、第一次提交

如上图所示,右击要提交到本地库的项目,在菜单栏里选择“Git”->“Commit Directory”,即可将该项目所有(已添加到暂存区的)文件提交到本地库。

如上图所示,在提交弹窗中,可以看到将要提交到本地库的文件有哪些,点击该文件还能看到具体内容。

在“Commit Message”中填写提交信息,然后点击“Commit”按钮,即可完成提交到本地库的操作。

如上图所示,当文件被提交到本地库后,文件的颜色恢复为最原始的黑色。

8.5.2、第二次提交

如上图所示,已被 Git 追踪过的文件,经过修改内容后,文件颜色会变成蓝色。

如上图所示,因为项目所有的文件在之前已被追踪过,所以可以将修改直接提交到本地库。

如上图所示,在提交弹窗中,可以看到将要提交到本地库的文件有哪些变化。

在“Commit Message”中填写提交信息,然后点击“Commit”按钮,即可完成提交到本地库的操作。

如上图所示,当修改后的文件被提交到本地库后,文件的颜色恢复为最原始的黑色。

8.5.3、第三次提交

如上图所示,已被 Git 追踪过的文件,经过修改内容后,文件颜色会变成蓝色。

如上图所示,因为项目所有的文件在之前已被追踪过,所以可以将修改直接提交到本地库。

如上图所示,在提交弹窗中,可以看到将要提交到本地库的文件有哪些变化。

在“Commit Message”中填写提交信息,然后点击“Commit”按钮,即可完成提交到本地库的操作。

如上图所示,当修改后的文件被提交到本地库后,文件的颜色恢复为最原始的黑色。

8.6、切换版本

8.6.1、查看提交版本信息

如上图所示,在 IDEA 底部的 “Version Control”->“Log”界面中,便可看到所有提交的列表,每次提交涉及到了哪些文件。

此外,还能看到分支指向哪个提交版本,HEAD 指针指向哪个分支。

在本例中,HEAD 指针指向 master 分支,master 分支指向第三次提交版本;因此工作区显示的是第三次提交的版本内容。

8.6.2、切换到其他的提交版本

如上图所示,右击要切换到的提交版本,再点击“ Checkout Revision '版本号' ”,即可切换到该版本。

如上图所示,点击切换版本后,IDEA 会在该版本创建一个临时匿名分支,HEAD 指针指向该临时匿名分支;因此工作区显示的是该版本的内容。

8.6.3、切换回原来的maser分支版本

如上图所示,右击 master 分支指向的提交版本,再点击“Checkout”->“master”,即可切换回原来的maser分支版本。

如上图所示,切换回原来的maser分支版本后,HEAD 指针指向 master 分支,master 分支指向第三次提交版本;因此工作区显示的是第三次提交的版本内容。

注意:切换回原来的maser分支版本后,之前 IDEA 为其他版本创建(仅供回看目的)的临时匿名分支会被自动删除。

8.7、创建分支

8.7.1、方式一

如上图所示,右击要创建分支的项目,在菜单栏里选择“Git”->“Repository”->“Branches”,即可打开分支操作的弹窗。

如上图所示,在分支操作的弹窗中,可以选择执行三个操作:New Branch(创建新分支)、Checkout Tag or Revision(切换到其他分支)、Local Branches Rename(对分支重命名)。

注意:后续操作请参考方式二的。

8.7.2、方式二

如上图所示,IDEA 右下角有当前 Git 分支的名称,点击即可打开分支操作的弹窗。

如上图所示,在创建新分支的弹窗中,输入新分支的名称(本例为 hot-fix ,即热修复的意思),点击 OK 即可创建一个新分支。

“Checkout Branch”复选框是默认选中的,意思是创建新分支后,自动切换到新分支。

如上图所示,创建新分支成功后,IDEA 右下角当前 Git 分支名称是新分支的名称,且新分支和 master 分支指向了同样的提交版本。

8.8、切换分支

如上图所示,在分支操作的弹窗中,选中要切换到的分支名称,然后点击“Checkout”即可切换到该分支。

如上图所示,已成功切换到 master 分支。

8.9、正常合并分支

8.9.1、在hot-fix分支新增内容

如上图所示,在 hot-fix 分支中,新增了一行内容;经过修改内容后,文件颜色会变成蓝色。

8.9.2、提交hot-fix分支的新增内容

如上图所示,多了一个提交版本,且 hot-fix 分支指向该提交版本。

8.9.3、切换到master分支

如上图所示,HEAD 指向了 master 分支,表示现在切换到了 master 分支,这时在工作区已看不到 hot-fix 分支已提交的新增内容。

8.9.4、合并hot-fix分支到当前分支

如上图所示,点击 IDEA 右下角当前 Git 分支名称,选择要合并的分支名称(本例为 hot-fix ),然后点击“Merge into Current”,即可将 hot-fix 分支合并到当前分支(本例为 master )。

如上图所示,如果内容没有冲突,分支直接合并成功,分支合并成功以后,会自动提交,无需再手动提交到本地库。

8.10、冲突合并分支

8.10.1、在hot-fix分支新增内容

如上图所示,在 hot-fix 分支中,新增了一行内容;经过修改内容后,文件颜色会变成蓝色。

8.10.2、提交hot-fix分支的新增内容

如上图所示,多了一个提交版本,且 hot-fix 分支指向该提交版本。

8.10.3、在master分支新增内容

如上图所示,切换到 master 分支中,新增了一行内容;经过修改内容后,文件颜色会变成蓝色。

8.10.4、提交master分支的新增内容

如上图所示,又多了一个提交版本,且 master 分支指向该提交版本。

注意:此时 hot-fix 分支和 master 分支分别对同一行做出了不同的修改。

8.10.5、合并hot-fix分支到当前分支

如上图所示,点击 IDEA 右下角当前 Git 分支名称,选择要合并的分支名称(本例为 hot-fix ),然后点击“Merge into Current”,即可将 hot-fix 分支合并到当前分支(本例为 master )。

如上图所示,因为 hot-fix 分支和 master 分支分别对同一行做出了不同的修改,合并分支时,IDEA 不知道选择使用哪个分支的修改是正确的。

因此,需要手动处理 hot-fix 分支和 master 分支,存在冲突的内容。

8.10.6、解决合并冲突

如上图所示,在手动合并的弹窗中,左侧是 master 分支的内容,右侧是 hot-fix 分支的内容,中间是手动合并结果的内容。

左右两侧还有操作按钮:“X”、“>>”和“<<”;“X”表示不将这行冲突内容合并到结果内容中,“>>”和“<<”表示将这行冲突内容合并到结果内容中。

如上图所示,先后点击了“>>”和“<<”操作按钮,两个分支的冲突内容也按顺序地合并到结果内容中了。

此外,还出现了一个提示,表示冲突内容已被处理,可以完成合并;这时点击“Apply”按钮即可完成手动合并冲突的操作。

如上图所示,合并冲突已解决,且自动提交到了本地库。

8、IDEA集成Git的更多相关文章

  1. sublime 集成git插件,及git常用命令

    以前用了很久的totoiseSVN,显然不够高大上,开发界的版本装x利器还得是git.然而git的命令行对没怎么用过linux的人可能觉得还不如用gitGUI,可是当你知道sublime可以集成git ...

  2. vs2013中集成Git

    一:为什么不用2013中自带的? 我的2013自带的没法用,连最基本的克隆都用不了,网上看着下  好像说都不能用:不知道各位的如何. 二:如何自己讲Git集成到vs2013中? 需要的工具:     ...

  3. IDEA集成git方法

    一.IDEA集成git方法 首先idea集成git我们需要先下载一个小软件,git bash  地址:https://git-scm.com/downloads  .下载好了之后直接下一步下一步傻瓜试 ...

  4. 如何在cmd中集成git

    1.要在cmd中集成git,要解决在cmd中输入git命令时不提示git不是内部或外部命令: 即需要将git添加到path变量中,即将D:\Git\mingw64\bin和D:\Git\mingw64 ...

  5. IDEA集成git和使用步骤

    2018年07月20日 11:26:29 完猛 阅读数:3246    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/miwanmeng/artic ...

  6. linux服务器中Jenkins集成git、Gradle持续构建Springboot项目

    Jenkins是用java编写的开源持续集成工具,目前被国内外各公司广泛使用.本章教大家如何在linux服务器中使用Jenkins自动发布一个可作为linux服务发布的Springboot项目. 自动 ...

  7. 自动化打包 Jenkins 持续集成 Git Gradle MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  8. Eclipse集成Git的实践

    最近一直在研究爬虫的相关技术,网上关于爬虫的教程实在是太少了,只能靠一些零零散散的博客资料做一个浅度的学习,我们已经学习了webcollector,htmlparser,Jsoup这些爬虫技术,并也成 ...

  9. myeclipse10.0如何集成Git

    现需要给myeclipse10.0集成git工具,经过搜索资料,现整理如下方法: myeclipse10.0对应的Git版本应该为:egit版本为2.3.1 下载地址:http://wiki.ecli ...

  10. Eclipse集成Git做团队开发:分支管理

    在日常开发工作中,我们通常使用版本控制软件管理团队的源代码,常用的SVN.Git.与SVN相比,Git有分支的概念,可以从主分支创建开发分支,在开发分支测试没有问题之后,再合并到主分支上去,从而避免了 ...

随机推荐

  1. 已将此(这些)订阅标记为不活动,必须将其重新初始化。需要删除 NoSync 订阅,然后重

    已将此(这些)订阅标记为不活动,必须将其重新初始化.需要删除 NoSync 订阅,然后重 查找状态不正常的发布 use distribution go select status,*from dbo. ...

  2. C#.NET 读取PFX私钥证书并导出PEM格式私钥

    项目nuget引用 BouncyCastle. 读取证书 X509Certificate2 x509 = new X509Certificate2(lblPfxPath.Text, txtPfxPwd ...

  3. Android开发基础——真机测试错误,ADB启动不了,程序安装不了,the connection to adb is down,INSTALL_CANCELED_BY_USER...

    在Android开发中,无论是真机测试还是AVD测试,都会报出这些错误.在这里,我会详细说明一下怎么会出现这些错误的,然后要怎么样才能解决这些错误. 错误一: The connection to ad ...

  4. 轻松实现H5页面下拉刷新:滑动触发、高度提示与数据刷新全攻略

    前段时间在做小程序到H5的迁移,其中小程序中下拉刷新的功能引起了产品的注意.他说到,哎,我们迁移后的H5页面怎么没有下拉刷新,于是乎,我就急忙将这部分的内容给填上. 本来是计划使用成熟的组件库来实现, ...

  5. ssm框架使springmvc放行资源(java配置类)

    在springmvc中,如果配置了拦截所有请求交给springmvc处理,会出现一些静态web资源加载不出来的情况,或者想放行指定web资源可以通过修改通过修改配置达到相应目的,这里使用覆写WebMv ...

  6. [iOS]Size Class不同尺寸适配的是什么样的机型(实验向)

    Size Class的定义可以翻阅网友的博客,本文不再赘述http://blog.csdn.net/yongyinmg/article/details/39315829 http://blog.csd ...

  7. TCP,UDP,IP,数据链路层头部详解

    UDP头部 可以看到UDP头部由(源端口).(目的端口).(长度)跟(校验和)组成,总共8字节. 源端口:发送方的端口号,16位,即2字节. 目的端口:接收方的端口号,16位,即2字节. 长度:头部+ ...

  8. Linux进程退出:SIGINT、SIGTERM 和 SIGKILL 有关信号 区别

    背景 学习 海思SDK,查看例程的时候发现了类似下面的代码: int main(int argc, char *argv[]) { if(argc != 2) { printf("Usage ...

  9. C#/.NET/.NET Core编程技巧练习集(学习,实践干货)

    DotNet Exercises介绍 DotNetGuide专栏C#/.NET/.NET Core编程常用语法.算法.技巧.中间件.类库练习集,配套详细的文章教程讲解,助你快速掌握C#/.NET/.N ...

  10. 写给rust初学者的教程(二):所有权、生存期

    这系列RUST教程一共三篇.这是第二篇,介绍RUST语言的关键概念,主要是所有权和生存期等. 第一篇:写给rust初学者的教程(一):枚举.特征.实现.模式匹配 在写第一篇中的练习代码时,不知道你有没 ...