idea操作git非常实用的教程

目录导航

    • 一:忽略提交文件的两种方式
    • 二:idea设置git忽略文件
    • 三:如何在IntelliJ IDEA中使用.ignore插件忽略不必要提交的文件
    • 四:idea 把一个add到git的文件去掉
    • 五:IDEA 撤销 commit
    • 六: idea中git回退本地仓库版本
    • 总结
        • 第一种情况:
        • 第二种情况:
        • 第三种情况:

一:忽略提交文件的两种方式

忽略提交文件有两种方式:

第一种没有添加到版本库!

第二种已经添加到版本库,但是现在不想再提交的!
一、文件没有添加到版本库中

idea操作git非常实用的教程_第1张图片
ignore specified file:忽略指定的文件

ignore all files under:忽略文件夹

ignore all files matching:忽略所有匹配的文件(某一类文件)

根据需要选择需要忽略的文件或者文件夹,直接添加进去就可以忽略提交!
二、文件已经纳入版本库
idea操作git非常实用的教程_第2张图片

第一步:按照上图步骤添加一个忽略文件夹

第二步:把不想提交的文件直接拖进该文件夹即可!

提示:如何把忽略的文件提交呐
第一种:可以在Version Control中直接把需要提交的文件拖出来

第二种:分次提交,先提交默认的,然后再提交忽略的文件

在changelist中可以选择是提交默认还是自己设置的忽略文件夹!

idea操作git非常实用的教程_第3张图片
忽略提交文件今天发现了新大陆,做一下笔记:
idea操作git非常实用的教程_第4张图片

这个是在你提交页面发现有自己不想提交的文件,这个时候可以直接点击Move to Another Changelist如果只有当前一个列表idea会提示你新建一个文件夹,如果你已经新建了忽略文件夹,直接点击然后文件忽略了,其实也不能叫忽略,只是把你不提交的文件换了文件夹,而只提交你当前所在的文件夹!仅此而已!!!!!

二:idea设置git忽略文件

  • 在使用IntelliJ IDEA这个集成开发工具进行开发时,我们会用到git等代码版本管理工具将代码push到远程仓库,IntelliJ IDEA有自带的git,当然我们也可以自己安装好了,在IntelliJ IDEA中进行配置。git本身是支持通过编辑.gitignore文件去忽略一些不想提交的文件的,如果项目工程代码中没有编辑.gitignore文件,那么IntelliJ IDEA会默认把当前本地和远程不一致的文件都列出来,事实上像后缀名是.iml, .idea,target 等文件是不需要提交的,如果每次都手动忽略的话会非常辛苦,而且可能不小心给提交了,回滚也麻烦,因此小编为大家介绍idea设置git忽略文件的方法,下面跟着小编一起学习吧。(第一次全局设置后以后就不用再担心啦!
  • IntelliJ IDEA设置文件自动忽略后,以后提交代码就会自动忽略.iml, .idea,target 文件夹等这些文件,该设置仅需设置一次即可,以后无论多少个项目都可以自动忽略该项目下面的这些文件。如下图所示,我们点击File --> Settings -->Editor --> File Types进行设置。
    idea操作git非常实用的教程_第5张图片

三:如何在IntelliJ IDEA中使用.ignore插件忽略不必要提交的文件

先来看下如何安装。点击File->Settings

使用:
在项目上右键->New ->.ignore file ->.gitignore file(Git)

先选择Example user template好了,以后有什么想过滤的可以自行添加,~最后点击Generate生成

然后就会发现被忽略的文件名变成了灰色有木有啊!又可以愉快的提交代码了~

也可以右键文件将其加入忽略的名单中

四:idea 把一个add到git的文件去掉

(比如你有很多个add了的文件,但是没有commit,都会使用这种方式都会回到等待add
,但是使用git rm --cached 可以针对某个文件?)

当你用idea把误把一个文件add到git后,想把这个文件去掉(也就是从git管理中去掉,commit时不把这个文件提交)的话,可以用下面的方法:
idea操作git非常实用的教程_第6张图片
idea操作git非常实用的教程_第7张图片
这方法就等于:git reset head

这个命令就是把本地仓库的文件,替换Stage区里相应的文件(工作区,就是你的文件目录,不受影响)

在网上看到还一个命令,就是: "git rm --cached " 。这个命令会直接从暂存区删除文件,工作区则不做出改变。(还没有测试过)

这么看来"git rm --cached "命令比"git reset head"更适合文章主题,前者是删除掉,后者是替换掉。

五:IDEA 撤销 commit

日常工作中会遇到 commit 到本地仓库的代码,因为一些原因,需要撤销后在提交到本地,或者需要整合多次 commit,然后 push 到远程仓库。下面是 IDEA 支持的快捷方式。
和上面第一点的的加入到版本库,忽略提交对比!

  1. Undo Commit
    idea操作git非常实用的教程_第8张图片
  2. 可以在 Version Control 查看到刚刚撤销的内容
    idea操作git非常实用的教程_第9张图片

六: idea中git回退本地仓库版本

介绍下Reset Head中三种Reset Type类型:

1.Mixed(默认):它回退到某个版本,本地会保留源码,回退commit和index信息,若要提交重新commit。

2.soft: 回退到某个版本,只回退了commit的信息,不会恢复到index file一级,若要提交重新commit。

3.Hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容。

操作如下:

拿ConfigServerApplication类中的fun() 方法来验证,每次提交修改方法中的数据,目前本地仓库的记录是10,远程仓库的记录是8,如下:
idea操作git非常实用的教程_第10张图片
idea操作git非常实用的教程_第11张图片
idea操作git非常实用的教程_第12张图片
现回退到9,记录9的version number:d7c653bdbd25c530aba6ad8c202048487b54a0ab
选择Reset Head:
idea操作git非常实用的教程_第13张图片
idea操作git非常实用的教程_第14张图片

Reset Type:选择默认的Mixed(相当于第四点:idea 把一个add到git的文件去掉)

To Commit:输入刚才记录的9的version number

点击Reset
idea操作git非常实用的教程_第15张图片
idea操作git非常实用的教程_第16张图片
commit记录回退到了9,本地记录还是10,这时可重新commit到本地仓库或revert还原到本地仓库的记录。push时只有记录9.

若Reset Type:选择Hard,如下:
idea操作git非常实用的教程_第17张图片
本地和commit记录都会回退,点击Reset后如下:

idea操作git非常实用的教程_第18张图片

总结

第一种情况:

刚新建的文件,还没有add,不想把文件add纳入版本管理:

  • 在setting设置file type;
  • 使用.gitignore,这种方式比较灵活,可以自由选择
  • 在version control的local changes选择unversioned file右键ignore的文件

第二种情况:

已经add,想要回到新建状态,不想纳入版本管理,即第一种:

  • 在控制台下,进入到对应文件目录,使用命令:git rm --cached
  • 右键git>>repository>>reset head 选择 默认mixed head即可,这里to commit就是默认的head
  • 在version control的local changes右键new changelist,然后把不想要的文件add 加入到这个changelist;这种实际上只是放到另外一个changeslist,提交的时候提交默认的changeslist

第三种情况:

已经commit,想要撤销commit:
这里分想要撤销comiit的提交历史,还有另一种是提交历史和代码也对应撤销:

  1. 仅仅想撤销commit提交历史,合并多次commit:
  • 在version control右键 undo commit即可撤销commit,代码不会回退
  • 这里使用git rm --cached f也可以,但是commit的历史还会存在,直接回到了待add状态,好像这个时候再次add,然后直接commit里面是看不到这个文件了,直接帮我们comiit了?(不太推荐)
  • 使用第二种情况的 右键git>>repository>>reset head 选择 默认mixed,
    然后to commit里面 想撤销一次就写head~1,多次就写对应数字 head~ 3,也可以指定版本的id
    注意第二种情况的git reset head里面是head,没有任何数字!
    这里解释一下几个参数:
    –mixed
    意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
    这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
    –soft
    不删除工作空间改动代码,撤销commit,不撤销git add .
    –hard(这个特别注意:代码也会回滚)
    删除工作空间改动代码,撤销commit,撤销git add .
    注意完成这个操作后,就恢复到了上一次的commit状态。

顺便说一下,如果commit注释写错了,只是想改一下注释,只需要
git commit --amend
此时会进入默认vim编辑器,修改注释完毕后保存就好了。
2. 提交历史和代码都要回退,选择git reset --hard head~1
(和git reset current branch 回退版本一样!)

参考文章:
https://blog.csdn.net/hotdust/article/details/52994203
https://www.cnblogs.com/gexiaoshan/p/10184815.html
https://blog.csdn.net/w893932747/article/details/80623795
https://www.jb51.net/article/128274.htm
https://jingyan.baidu.com/article/3a2f7c2ef5b2c926afd6111b.html
https://blog.csdn.net/w958796636/article/details/53611133

你可能感兴趣的:(Idea,Git和GitHub,idea,git)