如何避免在Github存储库上隐藏和删除文件时删除本地文件?

时间:2015-03-26 03:09:24

标签: git github version-control gitignore

假设我有一个现有的Github存储库和该存储库的几个本地克隆。

现在我决定阻止某个文件被Git管理并从Github存储库中删除该文件。我在其中一个本地克隆中执行了以下命令:

echo "to_be_ignored_file_name" >> .gitignore
git add .
git commit -m 'make git ignore a certain file'

git rm -r --cached .
git add .
git commit -m "delete the file to be ignored from the repository"

git push origin

完成上述操作后,文件从Github存储库中删除,Git将从现在开始忽略该文件。但结果是,该文件的本地副本也被删除(对于其他克隆,该文件在git fetch origingit pull之后被删除。)

如果我替换了上面命令序列的第二部分,如下所示:

git rm --cached to_be_ignored_file_name
git commit -m "delete the file to be ignored from the repository"

git push origin

然后,克隆中执行命令序列的本地文件未受影响,但其他克隆中的同一文件仍然在git fetch origingit pull后被删除。

有没有办法在忽略和删除Github存储库中的文件的同时保持所有克隆中的本地文件不受影响?

1 个答案:

答案 0 :(得分:0)

我不相信这是可能的。见Git: How to remove file from index without deleting files from any repository

还要考虑来自git-extrasgit-lock,或直接使用git update-index --skip-worktree而不是从存储库中删除,以忽略本地更改(如果这类似于配置文件)。