如图,本地开发需要修改配置文件的选项,但是不能提交更改,用 idea 的 changelist 功能分组就能避免误提交。svn 也是有这样好用的功能。想问一下其他 git 可视化工具或者 git 命令是否也有这样的功能?。 https://ws2.sinaimg.cn/large/007em91Jgy1g0bil77alsj309f04ddfy.jpg
1
yiyi11 OP 目前还有个方法是使用命令 git update-index --assume-unchanged 文件名,忽略文件的改动,但是不加入.gitignore 文件中(重点,因为还是有需要修改该文件的时候)。
|
2
jimxu16 2019-02-19 10:52:56 +08:00
不错 学到了
|
5
yiyi11 OP @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 文件名 做逆向操作。 |
6
chdahuzi 2019-02-19 11:24:45 +08:00
请教下 idea 的 changelist,按什么来分的组?
另外,TortoiseGit 是有 assume-unchanged 功能的 |
7
windedge 2019-02-19 11:33:41 +08:00 1
|
9
limbo0 2019-02-19 13:45:30 +08:00
brew install tig
tig 一直在用 |
10
icylogic 2019-02-19 13:49:45 +08:00 via iPhone
这种文件我一般是用一个 .template ( tracked )+ .local ( ignored )解决,需要提交的公共更改在 template 里体现,本地自用的就用 local_config 来覆盖。这也是很多 linux 程序配置文件的思路。
因为你没办法让所有人都用这种工具,别人一不小心提交了这种文件就很头疼。 |
11
yiyi11 OP @GM #8 这个倒没有仔细研究,因为 spirngboot 脚手架生成初始项目的时候,有个.gitignore 文件,把各个 ide 工具的配置文件都加入了忽略列表,应该是表明团队成员可以使用不同的 ide 工具。
|
12
icylogic 2019-02-19 13:54:10 +08:00 via iPhone
而且比如 a 改了 config["foo"] = bar1,b 改了 config["foo"] = bar2,然后觉得这个更改需要提交上去,这时候 a 再往下拉的时候,还得先 merge 了,再改回 bar1。如果分离开,就既不会影响别人,也不会被别人影响。
|
13
yiyi11 OP @icylogic #10 你的意思是加载配置文件的时候添加规则,比如检测是否有.local 文件,如果没有则加载.template 文件吗?现在就是偶尔有这样的问题,团队有成员对配置文件做了本地更改,然后不小心提交了。
|
14
yiyi11 OP @chdahuzi #6 idea 的 changelist 分组是自定义的,文件改动首次出现默认在 default changelist,你对该文件右键,会弹出一个菜单,选择“ move to another changelist ”,即可创建新的 changelist 或者分到现有的 changelist。
|
15
zjp 2019-02-19 14:10:55 +08:00
对于需要修改但不能提交的配置文件,之前折腾了会,也是用楼主说的两种方式。切换分支的话还是会很蛋疼...软件 /框架支持配置文件优先级的话还是新建文件去覆盖好一些
|
16
SoloCompany 2019-02-21 00:18:13 +08:00 via iPad
idea 的 task 以及 changelist 和 git 没半毛钱关系啊
|