如何从Git仓库中删除文件,而不会在克隆的仓库中删除它

3

我可以用以下命令从git代码库中删除文件:

git rm --cached <file>

但是当我在克隆的目录中拉取这些更改时,该文件将在那里被删除。

是否有可能避免这种情况,而不必在所有克隆中保存此文件并在拉取后恢复它?


git rm <file>commitpush - MarshalSHI
2个回答

2
我认为您正在寻找assume-unchanged标志。基本上,尝试运行以下命令。
git update-index --assume-unchanged <file>

这将停止跟踪任何本地对文件的更改。
要撤消上述命令的影响,请使用git update-index --no-assume-unchanged

谢谢!这正是我正在寻找的。 - steppicrew
如果你在这之后 pull,会覆盖你的文件吗?然后你能否将该文件删除而不会影响从同一源克隆的其他 repos 中的文件呢? - Mnebuerquo

-1

克隆存储库的想法是它应该是相同的,因此拉取操作将始终使两个存储库相同。 如果您想要拥有两组不同的文件,可以使用以下方法创建一个新分支并删除已删除的文件

git checkout -b <branch_name>

然后提交已删除的文件。

如果你真的不想这样做,你可以随时拉取更改,然后使用以下方法轻松地获取文件:

git checkout HEAD^ -- <file>

这个命令从倒数第二次提交中检出文件。


谢谢!问题是,我包含了一个配置文件,应该从仓库中删除,因为它可能与主机有关(并且不应该添加)。我不知道这个仓库确切地在哪里使用,我希望在其他地方拉取时避免删除此文件(并破坏正在运行的配置)。 - steppicrew
我会将示例配置文件存储在Git存储库中,并将实际的配置文件(可能包含密码)添加到.gitignore中。 - gdelfino
是的,如果配置文件是主机相关的,那么每个主机都需要根据示例文件进行设置。Git只应用于您想要进行版本控制的文件。 - MungoRae
问题在于该文件已经在主分支中被跟踪。您想从主分支中删除它,而不会在拉取时在其他地方被删除。 - Mnebuerquo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接