我试图在本地删除GIT中的一个文件夹。但是当我真的推的时候,不要去推那些改变。
在本地删除文件夹后,我尝试将其添加到/info/exclude,但没有帮助。该文件夹在状态中仍显示为“删除”。
我也不希望,谁使用同一台计算机能够做git checkuot HEAD~2和取回文件夹。
换句话说,:,我给我的朋友一个私人存储库。存储库包含敏感数据。我的朋友没有给我钱的东西。因此,对于每一个拉和推,他将需要我输入一个密码(它是好的)。我想从我的朋友电脑里删除一个文件夹,这样他就看不到了。
(因为谁问我为什么要删除我朋友电脑上的文件.这是我的电脑,但我把它送给了我的朋友。
(我不是要删除GIT中的历史记录,因为我希望它在历史中仍然存在,对于其他克隆回购的用户来说)
(我的朋友电脑实际上是一台cloud9,所以如果你有另一种解决方案,那就太棒了)
如果有什么不清楚的地方,请评论,我会改进这个问题。
发布于 2016-03-31 05:57:56
我也不希望,谁使用同一台计算机能够做
git checkout HEAD~2和取回文件夹。
这个,你做不到。如果它在历史上,任何人都可以得到。
你能得到的最接近的方法是(a)为稀疏签出设置一个存储库,
printf %s\\n '*' '!path/to/folder' > .git/info/sparse-checkout
git config core.sparsecheckout true
git checkout从那时起,任何不摆弄稀疏签出设置的人都不会在签出中看到被排除的文件夹,或者(b)从您的分布式历史记录中删除该文件夹,并在私有存储库中维护一个合并了公共和私有部分的单独历史记录。
发布于 2016-03-31 05:35:12
使用assume-unchanged标志标记不跟踪的文件,即使有更改
https://git-scm.com/docs/git-update-index
-不-假设-不变
如果指定此标志,则不会更新为路径记录的对象名称。相反,此选项设置/取消设置路径的“假定不变”位。 当“假定不变”位打开时,用户承诺不更改文件,并允许Git假定工作树文件与索引中记录的内容匹配。如果要更改工作树文件,则需要取消设置位以告知Git。这有时有助于在具有非常慢的lstat(2)系统调用(例如cifs)的文件系统上处理大型项目。 如果Git需要在索引中修改该文件,例如在提交中合并时,Git将失败(优雅地);因此,如果假定的未跟踪文件在上游被更改,则需要手动处理这种情况。

https://stackoverflow.com/questions/36324670
复制相似问题