我想要做的已经在那个问题中描述了。但我想以一种更实用、更通用的方式解决这个问题。所以用例如下:
- 我在几个文件或任何其他文件
web.config
中有几个本地更改createDb.sql
- 我不想提交这些文件,因为更改仅针对我的本地计算机
- 这些文件必须是版本控制的,而且经常对其中一些文件进行更改(特别是 sql 脚本),所以我想接收这些文件的更新
- 我确实想提交所有其他文件
- 我希望能够在一个命令中毫无摩擦地做到这一点(使用 posh-git,所以欢迎使用 powershell)
据说使用的链接到解决方案git add -p
并不实用,一直手动选择块很无聊,或者也许有更方便的方法?
例如,以下其中一项可能有效:
- 如果能够在将工作副本中的文件添加到索引之前过滤它们,例如
git -add -A -EXCEPT web.config crateDb.sql
. 然后我可以将一个 git 别名映射到那个,就是这样。 - 如果有能力取消应用存储。我的意思是从工作副本中删除一个特定存储中包含的更改。所以我必须
git stash -deapply
在每次提交之前做一些事情,这也很好。
这个问题很常见,奇怪的是目前没有解决方案。例如,TortoiseSVN 具有“ignore-on-commit”功能,Perforce 允许将该类型的本地更改存储在单独的更改列表中,并且从不提交。