感觉 idea 的 git-changelist 很好用

2019-02-19 10:26:17 +08:00
 yiyi11

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

7902 次点击
所在节点    程序员
16 条回复
yiyi11
2019-02-19 10:29:55 +08:00
目前还有个方法是使用命令 git update-index --assume-unchanged 文件名,忽略文件的改动,但是不加入.gitignore 文件中(重点,因为还是有需要修改该文件的时候)。
jimxu16
2019-02-19 10:52:56 +08:00
不错 学到了
psuwgipgf
2019-02-19 10:55:06 +08:00
@yiyi11 正好需要,idea 的 .idea 经常改动,都不知道改了什么
yiyi11
2019-02-19 11:07:36 +08:00
@psuwgipgf #3 .idea 文件夹要加入.gitignore 文件中的啊,开发不应该关心这个文件夹的改动。
yiyi11
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
2019-02-19 11:24:45 +08:00
请教下 idea 的 changelist,按什么来分的组?

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

tig

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

因为你没办法让所有人都用这种工具,别人一不小心提交了这种文件就很头疼。
yiyi11
2019-02-19 13:52:48 +08:00
@GM #8 这个倒没有仔细研究,因为 spirngboot 脚手架生成初始项目的时候,有个.gitignore 文件,把各个 ide 工具的配置文件都加入了忽略列表,应该是表明团队成员可以使用不同的 ide 工具。
icylogic
2019-02-19 13:54:10 +08:00
而且比如 a 改了 config["foo"] = bar1,b 改了 config["foo"] = bar2,然后觉得这个更改需要提交上去,这时候 a 再往下拉的时候,还得先 merge 了,再改回 bar1。如果分离开,就既不会影响别人,也不会被别人影响。
yiyi11
2019-02-19 13:57:27 +08:00
@icylogic #10 你的意思是加载配置文件的时候添加规则,比如检测是否有.local 文件,如果没有则加载.template 文件吗?现在就是偶尔有这样的问题,团队有成员对配置文件做了本地更改,然后不小心提交了。
yiyi11
2019-02-19 14:01:18 +08:00
@chdahuzi #6 idea 的 changelist 分组是自定义的,文件改动首次出现默认在 default changelist,你对该文件右键,会弹出一个菜单,选择“ move to another changelist ”,即可创建新的 changelist 或者分到现有的 changelist。
zjp
2019-02-19 14:10:55 +08:00
对于需要修改但不能提交的配置文件,之前折腾了会,也是用楼主说的两种方式。切换分支的话还是会很蛋疼...软件 /框架支持配置文件优先级的话还是新建文件去覆盖好一些
SoloCompany
2019-02-21 00:18:13 +08:00
idea 的 task 以及 changelist 和 git 没半毛钱关系啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/536413

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX