git删除本地文件,但保留repo中的文件
尝试在本地删除文件,同时将文件保留在repo上。问题是我似乎无法丢弃已删除的内容。我试过使用git删除本地文件,但保留repo中的文件,git,github,Git,Github,尝试在本地删除文件,同时将文件保留在repo上。问题是我似乎无法丢弃已删除的内容。我试过使用git-rm。但是使用git-rm也会删除回购时的副本,这不是我想要的。我能想到的唯一解决方案是将路径放入.gitignore。还有其他解决办法吗 Changes not staged for commit: (use "git add/rm <file>..." to update what will be committed) (use "git checkout -- <f
git-rm
。但是使用git-rm
也会删除回购时的副本,这不是我想要的。我能想到的唯一解决方案是将路径放入.gitignore
。还有其他解决办法吗
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
(commit or discard the untracked or modified content in submodules)
deleted: stuff/code
未为提交而暂存的更改:
(使用“git add/rm…”更新将提交的内容)
(使用“git签出--…”放弃工作目录中的更改)
(提交或放弃子模块中未跟踪或修改的内容)
删除:内容/代码
这不是一件明智的事情,或者Git打算支持工作流
如果要删除本地文件,但不影响Git,则不能使用Git。只需使用rm
。丢失的文件将永远显示为对Git的未老化更改
如果要删除该文件并防止Git将其持续显示为未老化的更改,可以使用
git update-index --assume-unchanged <file>
git更新索引--假定未更改
但是,你真的不应该这么做。这不是一件明智的事情,或者Git应该支持工作流 如果要删除本地文件,但不影响Git,则不能使用Git。只需使用
rm
。丢失的文件将永远显示为对Git的未老化更改
如果要删除该文件并防止Git将其持续显示为未老化的更改,可以使用
git update-index --assume-unchanged <file>
git更新索引--假定未更改
但是,您真的不应该这样做。将路径放入
.gitignore
并使用操作系统的常规工具删除它有什么错?这似乎正是你在这种情况下应该做的事情。@2个不起作用的炼金术士。您不能将文件添加到.gitignore
中,如果该文件已在repo中,则不会有任何作用。@meagar抱歉,阅读理解。将路径放入.gitignore
并使用操作系统的常规工具将其删除有什么错?这似乎正是你在这种情况下应该做的事情。@2个不起作用的炼金术士。您不能将文件添加到.gitignore
中,如果该文件已经在repo中,则不会有任何作用。@meagar抱歉,阅读理解。不确定我是否做对了。我使用了git更新索引——假设未更改,然后删除我的文件。但它仍然显示为在未提交的更改下被删除
@Two Bitalchest假设您使用的是合理的最新Git,它应该可以正常工作:@meagar获得它。谢谢你的清楚解释。非常有用。顺便说一句,我发现以下内容对于删除多个文件非常有用git ls文件--deleted-z | xargs-0 git update index--assigned unchanged
。我将此作为一种攻击,这样我就可以通过符号链接在已经提交的外部库中进行修补,而git不会抱怨文件丢失。现在我可以在外部库上并行开发了!谢谢你的回答!不确定我是否做对了。我使用了git更新索引——假设未更改,然后删除我的文件。但它仍然显示为在未提交的更改下被删除
@Two Bitalchest假设您使用的是合理的最新Git,它应该可以正常工作:@meagar获得它。谢谢你的清楚解释。非常有用。顺便说一句,我发现以下内容对于删除多个文件非常有用git ls文件--deleted-z | xargs-0 git update index--assigned unchanged
。我将此作为一种攻击,这样我就可以通过符号链接在已经提交的外部库中进行修补,而git不会抱怨文件丢失。现在我可以在外部库上并行开发了!谢谢你的回答!