感觉 idea 的 git-changelist 很好用 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
yiyi11
V2EX    程序员

感觉 idea 的 git-changelist 很好用

  •  2
    &nbp;
  •   yiyi11 2019-02-19 10:26:17 +08:00 8590 次点击
    这是一个创建于 2428 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如图,本地开发需要修改配置文件的选项,但是不能提交更改,用 idea 的 changelist 功能分组就能避免误提交。svn 也是有这样好用的功能。想问一下其他 git 可视化工具或者 git 命令是否也有这样的功能?。 https://ws2.sinaimg.cn/large/007em91Jgy1g0bil77alsj309f04ddfy.jpg

    16 条回复    2019-02-21 00:18:13 +08:00
    yiyi11
        1
    yiyi11  
    OP
       2019-02-19 10:29:55 +08:00   1
    目前还有个方法是使用命令 git update-index --assume-unchanged 文件名,忽略文件的改动,但是不加入.gitignore 文件中(重点,因为还是有需要修改该文件的时候)。
    jimxu16
        2
    jimxu16  
       2019-02-19 10:52:56 +08:00
    不错 学到了
    psuwgipgf
        3
    psuwgipgf  
       2019-02-19 10:55:06 +08:00
    @yiyi11 正好需要,idea 的 .idea 经常改动,都不知道改了什么
    yiyi11
        4
    yiyi11  
    OP
       2019-02-19 11:07:36 +08:00
    @psuwgipgf #3 .idea 文件夹要加入.gitignore 文件中的啊,开发不应该关心这个文件夹的改动。
    yiyi11
        5
    yiyi11  
    OP
       2019-02-19 11:14:58 +08:00
    @yiyi11 #1 补充 1L 的命令说明:
    命令:git update-index --assume-unchanged 文件名,作用:忽略文件的改动,但是不加入.gitignore 文件中,这样可以达到仅在本地目录中忽略,不影响其他团队成员的工作。
    命令:git update-index --no-assume-unchanged 文件名,作用:上一个命令的逆操作,重新追踪文件改动。
    便捷用法,编写 shell 脚本,
    disable_track.sh 内容:
    #!/bin/bash
    git update-index --assume-unchanged 文件名
    disable_track.sh 放在项目的.git/hooks 文件夹中(如果需要把脚本加入版本管理分享可以放在别的目录),然后打开 git bash 命令行,执行$ ./.git/hooks/disable_track.sh 即可。
    同理建立 enable_track.sh
    #!/bin/bash
    git update-index --no-assume-unchanged 文件名
    做逆向操作。
    chdahuzi
        6
    chdahuzi  
       2019-02-19 11:24:45 +08:00
    请教下 idea 的 changelist,按什么来分的组?

    另外,TortoiseGit 是有 assume-unchanged 功能的
    windedge
        7
    windedge  
       2019-02-19 11:33:41 +08:00   1
    GM
        8
    GM  
       2019-02-19 11:52:23 +08:00
    @yiyi11 .idea 目录里有存放代码格式规则配置文件,这个我觉得可以存进 git 库里
    limbo0
        9
    limbo0  
       2019-02-19 13:45:30 +08:00
    brew install tig

    tig

    一直在用
    icylogic
        10
    icylogic  
       2019-02-19 13:49:45 +08:00 via iPhone
    这种文件我一般是用一个 .template ( tracked )+ .local ( ignored )解决,需要提交的公共更改在 template 里体现,本地自用的就用 local_config 来覆盖。这也是很多 linux 程序配置文件的思路。

    因为你没办法让所有人都用这种工具,别人一不小心提交了这种文件就很头疼。
    yiyi11
        11
    yiyi11  
    OP
       2019-02-19 13:52:48 +08:00
    @GM #8 这个倒没有仔细研究,因为 spirngboot 脚手架生成初始项目的时候,有个.gitignore 文件,把各个 ide 工具的配置文件都加入了忽略列表,应该是表明团队成员可以使用不同的 ide 工具。
    icylogic
        12
    icylogic  
       2019-02-19 13:54:10 +08:00 via iPhone
    而且比如 a 改了 config["foo"] = bar1,b 改了 config["foo"] = bar2,然后觉得这个更改需要提交上去,这时候 a 再往下拉的时候,还得先 merge 了,再改回 bar1。如果分离开,就既不会影响别人,也不会被别人影响。
    yiyi11
        13
    yiyi11  
    OP
       2019-02-19 13:57:27 +08:00
    @icylogic #10 你的意思是加载配置文件的时候添加规则,比如检测是否有.local 文件,如果没有则加载.template 文件吗?现在就是偶尔有这样的问题,团队有成员对配置文件做了本地更改,然后不小心提交了。
    yiyi11
        14
    yiyi11  
    OP
       2019-02-19 14:01:18 +08:00
    @chdahuzi #6 idea 的 changelist 分组是自定义的,文件改动首次出现默认在 default changelist,你对该文件右键,会弹出一个菜单,选择“ move to another changelist ”,即可创建新的 changelist 或者分到现有的 changelist。
    zjp
        15
    zjp  
       2019-02-19 14:10:55 +08:00
    对于需要修改但不能提交的配置文件,之前折腾了会,也是用楼主说的两种方式。切换分支的话还是会很蛋疼...软件 /框架支持配置文件优先级的话还是新建文件去覆盖好一些
    SoloCompany
        16
    SoloCompany  
       2019-02-21 00:18:13 +08:00 via iPad
    idea 的 task 以及 changelist 和 git 没半毛钱关系啊
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     955 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 20:04 PVG 04:04 LAX 13:04 JFK 16:04
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86