引子
Intellij IDEA和它的家族,比如Andriod Studio等都内置了Git 插件。
比如可以在控制台查看所有分支的commit记录:
也可以通过任务栏的VCS,还有右上角的图标,进行stash、commit、pull、push等操作。
还可以直接选中文件,然后右键进行git add 、git commit
等操作。图形化界面确实减少了很多使用上面的麻烦。但是轻松的时候,我们也要避免不了解图形化界面优化之后背后的原理。本文将简单总结一下Idea内Git插件使用时需要注意的一些点。
git commit 操作的合并
通过idea 进行commit操作时,实际上并不仅仅只是使用了git commit
。
- 正常来说对文件进行新增、删除、修改需要先对文件进行add,添加到暂存区,然后再通过commit添加进版本库。
- idea对此进行了合并,idea的commit会在后台帮助我们进行add这一操作。
git reset的四种模式
idea git的控制台上可以右键选择某条或多条commit记录进行操作,比如reset、cherry-pick、git patch(打补丁)等等。idea内的git reset
出现了4种模式。参考GIT命令的使用,reset有5种模式的。此处少了merge
模式。回顾一下该模式的作用:
- 以该模式reset时,如果存在文件被修改,并且修改后没有
git add
该文件,不允许回退。 - 如果文件发生修改并
git add
后,可以回退,并且会丢失暂存区记录。
在idea的git插件里面,基本上仅有文件新增的时候需要使用git add
。在使用插件时,可以对修改、删除的文件直接进行commit(实际上是不可以的,需要先将对该文件的操作添加到暂存区)。在idea里面,git add
这一操作被简化了,所以git reset --merge
也没有被提供出来。
git push的优化
idea可以直接将本地新增分支(远程还没有的分支)推送到远程仓库。
我们可看到远程分支上被标注了new,也是插件进行过的优化。正常来说是需要指定参数的,比如
--set-upstream
。
查看git 插件的控制台,可以看到插件确实帮我们加上了这个参数。
[git-test] git -c credential.helper= -c core.quotepath=false -c log.showSignature=false
push --progress --porcelain origin refs/heads/asdasdas:asdasdas
--set-upstream
总结
关于插件进行了的优化还有很多,主要还是在于上面提及的一二点。
合理运用工具,但也不要忘记背后的原理。