8、IDEA集成Git
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”按钮即可完成手动合并冲突的操作。
如上图所示,合并冲突已解决,且自动提交到了本地库。
本文来自博客园,作者:Javaer1995,转载请注明原文链接:https://www.cnblogs.com/Javaer1995/p/18203196