在 git 存储库中取消跟踪文件时,使用git rm -r --cached .
. 这不会删除本地存储中曾经跟踪过的文件,但是当其他开发人员使用 获取此提交时git pull
,曾经跟踪过的文件将在他们的机器存储中删除。
您可以通过以下方式重现它:
- 保存当前工作。(机器 A )
git add .
git stash save "work position"
- 创建一个新文件并提交它。(机器A)
echo hello>>file_not_to_track
git add .
git commit -m "add file file_not_to_track"
- 从另一台机器(或另一个目录)拉取(机器 B)
git pull
立即显示文件
ls
file_not_to_track README.md
- 取消跟踪文件。(机器A)
echo file_not_to_track >> .gitignore
git rm -r --cached .
git add .
git commit -m "untrack file_not_to_track"
git push
立即显示文件
ls
file_not_to_track README.md
- 获取代码(机器 B)
git pull
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From example.com:my/example_project
6525df1..f413f8b master -> origin/master
Updating 6525df1..f413f8b
Fast-forward
.gitignore | 1 +
file_not_to_track | 1 -
2 files changed, 1 insertion(+), 1 deletion(-)
create mode 100644 .gitignore
delete mode 100644 file_not_to_track
立即显示文件
ls
README.md
正如它显示的那样,git rm -r --cached .
删除其他仓库中曾经跟踪过的文件,但不在当前仓库中。