不论是Eclipse还是IDEA,在工程创建后,都有一些特定文件,如Eclipse中:.settings、.classpath、.project,再如IDEA中:.idea、.iml等,详细如下图所示:
Eclipse中:
IDEA中:
问题一:为什么要忽略这些特定文件?
因为这些特定文件与项目的实际功能无关,不参与服务器上部署运行,把它们忽略掉能够屏蔽 IDE 工具之间的差异。
问题二:如何忽略?
# 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
该文件存放位置理论上放在哪里都可以,但是为了便于让~/.gitconfig文件引用,建议放在用户家目录下。
此文件的意思:对于*.class,表示忽略所有以.class为后缀的文件,其它以此类推。
2. 在.gitconfig文件(位于Windows系统家目录)中引用忽略配置文件
.gitconfig中可以按下面配置:
打开IDEA,再打开settings(设置),点击Version Control,点击Git,定位Git安装目录下的bin\git.exe。定位好git.exe之后,进行测试,点击Test,弹出当前Git的版本号对话框,则说明成功。
按照1.1和1.2中的配置,环境设置就完成了,下面就可以在IDEA中操作Git了。
打开IDEA,可以看到最上面一行有VCS(version control settings, 版本控制设置),按照下面截图设置:
弹出下面的对话框,再选中想要初始化为一个Git本地库的目录,
此时在D:\Java\Spring\demo
目录下就会生成一个.git隐藏目录,表示初始化成功。
选中要提交的目录,右击,选中git,点击Commit Directory,
点击Commit Directory后会弹出下面的对话框,然后确认勾选提交的文件,写上提交信息,最后点击Commit即可。
注意:如果点击Commit之后,提示有warning和error,那么把下图中的勾去掉即可:
首先提交代码多次,形成多个版本。
所以直接选中蓝色的修改的文件,右击,选中git,再点击Commit File,填写提交信息即可形成多个版本。
切换版本:
IDEA最下方有一个Version Control,如果没有,参考这篇文章,设置一下即可。
点击Version Control,按下图操作
从third commit切换到second commit:
结果:
其它的版本切换都类似,这里不再赘述。
1、创建分支
点击IDEA右下角的Git符号,再点击+New Branch选项,
弹出下面的对话框,输入分支名,点击OK
这样创建分支就成功了,此时再点击IDEA右下角Git符号,就可以看到两个分支,即master分支和hot-fix分支,如下图所示:
2、切换分支
还是点击IDEA右下角的Git符号,如果要从当前分支(master) —> hot-fix分支,则点击hot-fix选项,再点击Checkout即可。
结果:
到此切换分支完成。
3、合并分支
(1)正常合并
演示将hot-fix分支合并到master分支,所以前提是hot-fix代码发生改变(仅修改hot-fix分支代码,master分支代码不动,正常合并),这里在hot-fix分支中添加一行代码System.out.println(“Coding”)。添加完了之后,提交到本地库(commit)。合并操作如下:
首先先切换到master分支下,点击hot-fix,点击Merge into Current,
结果:
分支合并成功,代码自动提交,无需手动提交本地库。
(2)冲突合并
如果hot-fix分支和master分支的代码都发生了改变,合并时就会产生合并冲突。这里修改如下:
System.out.println("hot-fix test"); // hot-fix分支做的修改
System.out.println("master test"); // master分支做的修改
此时站在master分支上,将hot-fix分支合并到master分支(合并方法还是和上面相同),就会产生冲突,弹出下图:
弹出下面界面:
根据需求,手动处理冲突,处理完之后,点击Apply
结果:
再查看版本日志:
至此,冲突合并完成,并自动提交本地库。
ctrl+alt+s
,打开设置界面,按照如下操作:
弹出如下界面:
点击Log In,但是在IDEA中通过账号密码登陆github通常很难登上去,于是就出现404。这时候可以用口令登陆,点击2处Enter token
弹出下面对话框:
这时候需要去GitHub网页端获取口令(token):github头像 —> settings —> Developer settings —> Personal access tokens —> Generate new token,弹出下面界面:
最后点击Generate token,就可以看到生成的口令了:
粘贴进IDEA中的登陆对话框,并点击Log in,就登陆成功了:
可以看到上图中已经显示此IDEA中登陆了GitHub账号。
把项目上传到GitHub,可以通过git add、git commit、git push等命令,但这种方法的前提是先在GitHub上创建远程库,再把代码推送到该远程库。为了简便起见,可以通过下面的方法,直接分享项目到GitHub,不需要git add、git commit、git push等命令,也不需要在GitHub上创建远程库。
先按照下图操作:
弹出下面的对话框,设置好之后,点击Share
分享成功,IDEA下方显示:
GitHub端也会自动新建一个仓库sharetest,如下图所示:
至此成功分享项目到了GitHub。
修改代码后,提交本地库,再按下图:
弹出下面对话框,点击push
点击push之后,会弹出对话框,输入GitHub账号密码,即可push成功,如下图所示:
此时GitHub网页端也有了push的代码,即push完成。
问题:这种操作默认使用的是https协议,需要输入账号密码,之前配置过ssh协议免密登陆,所以这里应该使用ssh免密登陆,直接push,不需要输入账号密码,更加方便。
使用SSH免密登陆:
先点击远程库别名origin,再点击Define Remote,
弹出下面的对话框,
点击OK,可能会出现下面的情况:
解决方法如下图所示:
此时再按照上面的方法进入push界面,先点击origin分支,这时弹出的小对话框就会出现刚刚设置的ssh协议的分支ssh-git,点击ssh-git,最后点击下面的push
结果提示push成功:
温馨提示:与远程库有关的push、pull等操作尽量使用免密登陆,如果使用账号密码登陆,经常会登陆不上去,导致push、pull失败,血的教训!!!
先在GitHub网页端修改代码,并在网页端提交代码,这时候远程库代码发生了改变,程序员要基于最新代码开发时,必须先从远程库拉取代码,使得本地库与远程库代码同步。我以网页端添加了一行System.out.println(“pull test”);为例。
先按下图找到pull,
弹出下面的对话框,
拉取成功:
注意:pull是拉取远程库代码到本地库,如果远程库代码和本地库代码不一致,会自动合并,如果自动合并失败,还会涉及到手动解决冲突的问题。
先按照下图操作:
弹出下面对话框,
点击clone,克隆完成后,弹出下面的对话框,询问是否打开,点击yes,
之后等待IDEA打开克隆的项目即可。
最后需要注意的一点:
push是将本地库代码推送到远程库,如果本地库代码跟远程库代码版本相比旧,push操作会被拒绝。也就是说,要想 push 成功,一定要保证本地库的版本要比远程库的版本新!因此一个成熟的程序员在动手改本地代码之前,一定会先检查下远程库跟本地代码的区别!如果本地的代码版本已经落后,切记要先 pull 拉取一下远程库的代码,将本地代码更新到最新以后,然后再修改,提交,推送!
结束语:如果本篇博客对您有帮助,请点赞、关注或收藏,您的鼓励是博主进步的动力,感谢支持,共同进步。