其它基础 - 提交时不自动钩选

  • 作者:KK

  • 发表日期:2015.12.27


暂不提交个别文件

  • 需求场景

    通常你并不是只是在负责一个任务,而是有2到3个功能同时在开发

    假如2个功能一共涉及9个文件被修改,而功能1只涉及7个文件,功能2涉及2个文件

    当你要提交功能1时,正常人应该是对空白的地方右键提交的,这样会列出9个文件的变更,并且默认钩选可是你并不想提交功能2的另外两个文件呀

    于是你就要手动关闭功能2的两个文件钩选来提交,开头就可能觉得没什么,但久而久之你就烦,因为老是提交时要关闭这两个钩,操作真繁琐

    还有个问题,你不一定每次提交都记得关钩钩,有时真的手快会没取消钩就给提交了,这是没开发完成的代码

  • 解决方案

    在空白的地方发起提交,此时列出了全部变更的文件,找到你这段时间暂时不想提交的文件右键,最底下有一个菜单叫做移动到修改列表,鼠标划过去会再展开一个子菜单,在子菜单中选择ignore-on-commit,然后你就发现文件变更列表发生了变化,下面多出了一栏ignore-on-commit,并且它下面有你刚才操作的文件,只是没有钩状态而已.

    进行这个操作后,你关闭变更窗口不提交,再发起一次提交看看,它默认是不钩选你刚才移动到修改列表的文件的,除非你对它再右键从修改列表删除就会回到正常的变更列表里

    其实这里的原理就是SVN建立多了一个叫做ignore-on-commit修改列表,将你选择的文件存了进去,只要是这个修改列表里的文件都不会被钩选,除非你手动钩选

    另外你还可以新建更多命名不同的修改列表(如果你有更多功能在同时开发,想进行分组),但实际上我们工作中很少会有这么复杂的情况,自己以后再慢慢摸索这个细节吧