hal*_*leo 31 git version-control repository
在我的主目录中,我在本地git存储库中有文件,因为我想在版本控制下跟踪它们.
我希望将这些文件中的大多数推送到远程存储库,但是我想要保留在我的本地存储库中的一些文件(它们包含温和的敏感信息).
我怎样才能用git实现这个目标?我可以配置一个" .gitignore-for-push
"文件吗?我无法使用本地.gitignore
文件,因为它会完全排除这些文件被跟踪.
ps:我知道问题是否有一个排除文件等效的...,但答案沿着.gitignore
我无法使用的路径走下去.另一个问题在推送时排除特定文件...只回答git + heroku的特定情况,而不仅仅是git.
red*_*nce 33
您可以继续并实际跟踪这些文件(没有敏感信息),但随后使用:
git update-index --assume-unchanged <file>
在每个文件上.然后你可以继续将敏感信息添加到每个文件中,但Git不会将文件视为已更改,也不会尝试提交(从而推送)该敏感信息.
要让Git再次更新信息,您可以使用:
git update-index --no-assume-unchanged <file>
dun*_*nni 13
这是不可能的.如果您提交了一个文件,那么它将被推送.推送操作仅作用于提交,而不是基于文件.
但是,您可以将子模块用于敏感数据,并将此子模块保留在本地计算机上,同时将常规git存储库推送到远程计算机.
我最终解决这个问题的方法如下:将敏感信息放在具有自己的git存储库的子目录中,并将文件符号链接回旧位置.
例如,在您的主文件夹(~
)中存在.creds
您不希望在公共存储库中的文件.移动这个文件称为子文件夹,说protected
从创建符号链接~
到protected/.creds.
.当然,不包括在此文件夹~
存储库,但创建一个新的库文件夹中protected
只跟踪.creds
.如果您根本没有公开推送此存储库,那么您已经设置好了.
我知道这个解决方案是一种警察:我的问题表明该文件位于同一目录中,但符号链接适用于我.
这里 git-update-index - 将工作树中的文件内容注册到索引。
git update-index --assume-unchanged <PATH_OF_THE_FILE>
Run Code Online (Sandbox Code Playgroud)
例子:-
git update-index --assume-unchanged somelocation/pom.xml
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
21576 次 |
最近记录: |