git - 如何不将本地删除的文件提交到 git

标签 git

我们有这样一种情况,我们正在使用 git 来存储无数的扫描(图像)并且不希望在安装后将它们保存在本地机器上;然而,git 将每个本地删除(在这个过程之后)视为要提交给 repo 的东西,我们不希望这种情况发生。关于如何只提交附加文件而不删除任何文件的任何想法?

最佳答案

使用 Skip-Worktree 位

git-update-index(1)命令提供了一些处理这个问题的方法。基于您希望将 blob 保留在历史记录中同时从工作树中删除它们的假设,您可以使用以下方法:

git add --all
git commit --message="Add new assets to repository."
git update-index update-index --skip-worktree <files ...>
rm <files ...>

请注意,最后一行不是 Git 命令,因为在将文件存储在索引中之后,您要从 shell 中的工作树 中删除这些文件。不要错误地使用 git rm,因为它对索引进行操作。

列出您的特殊位和仅索引文件

要查看您用 skip-worktree 位标记的文件:

git ls-files -v | awk -v IGNORECASE=1 '$1 ~ /s/ {print}'

您还可以使用 git-ls-files(1)在索引中查找已从工作树中删除的文件。

关于git - 如何不将本地删除的文件提交到 git,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19225182/

相关文章:

git - 将符号链接(symbolic link)推送到 git 是一种不好的做法吗?

git - Yeoman 生成器 - 创建远程 github 存储库

git 没有推送空文件夹

git:如何查看对单个分支的提交

git - 如何使用 Git 查看以前的差异提交?

GitLab SSH 权限被拒绝(公钥)

git - 如何从子树 repo 中提取子模块?

git - 第一次提交应该是什么?

python - 使用 Anaconda 安装 github 版本的包

git - Git 分支策略不支持 TFS 2017 XAML 构建?