忽略本地文件修改但不远程
Ignore file modifications locally but not remotely
在我们的 git
存储库中,例如 settings.ini
包含一堆配置数据。当我在本地测试我们的程序时,程序会自动更改文件中的一些值,例如本地目录路径或 IP 地址等,这些上游的任何人都不感兴趣,但是设置模块的所有者当然可能会添加新的设置我需要下载。
目前,我们使用 Gitflow pattern,所以我在处理一个功能,但是当我尝试 git flow feature finish my_feature
时,我得到一个错误:
Fatal: Working tree contains unstaged changes. Aborting.
当然,git checkout -- settings.ini
或 git stash
让我解决了这个问题,但是有没有办法将文件标记为 "ignore local changes" 这样我就可以停止收到错误并保留我的更改?
在此处查看此博客 post:
https://www.jimbobbennett.io/hiding-api-keys-from-git/
这有一个从 git 获取 "hiding" 信息的技术,它基本上需要添加您希望将其检入存储库的文件,然后 运行 命令:
git update-index --assume-unchanged ./<your file name here>
这将告诉 git 忽略以后对该文件的任何更改。
显然,如文章中所述,如果您确实想要对文件进行实际更改,则需要再次更新文件。
在我们的 git
存储库中,例如 settings.ini
包含一堆配置数据。当我在本地测试我们的程序时,程序会自动更改文件中的一些值,例如本地目录路径或 IP 地址等,这些上游的任何人都不感兴趣,但是设置模块的所有者当然可能会添加新的设置我需要下载。
目前,我们使用 Gitflow pattern,所以我在处理一个功能,但是当我尝试 git flow feature finish my_feature
时,我得到一个错误:
Fatal: Working tree contains unstaged changes. Aborting.
当然,git checkout -- settings.ini
或 git stash
让我解决了这个问题,但是有没有办法将文件标记为 "ignore local changes" 这样我就可以停止收到错误并保留我的更改?
在此处查看此博客 post:
https://www.jimbobbennett.io/hiding-api-keys-from-git/
这有一个从 git 获取 "hiding" 信息的技术,它基本上需要添加您希望将其检入存储库的文件,然后 运行 命令:
git update-index --assume-unchanged ./<your file name here>
这将告诉 git 忽略以后对该文件的任何更改。
显然,如文章中所述,如果您确实想要对文件进行实际更改,则需要再次更新文件。