如何从 git 中删除不需要的文件

How to remove unwanted file from git

我推送了一个分支,没有注意到分支下所做的更改。在我的远程分支中有一个名为 \ 的文件。我用过git rm \ .。但是没有luck.Please帮我删除文件。

谢谢

您的 shell 很可能将反斜杠用作转义字符。要将实际的反斜杠传递给程序的命令行,大多数 shell 都允许您自行转义它或使用引号告诉 shell 不要对其进行特殊解释。

git rm \

git rm '\'

要从 Git 中删除文件,您必须将其从跟踪的文件中删除(更多 准确地说,将其从暂存区中删除)然后提交。 git 房间 命令会执行此操作,并且还会从您的工作目录中删除该文件,因此 下次您不会将其视为未跟踪文件。 如果您只是从工作目录中删除该文件,它会显示在 git 状态的“已更改但未更新”(即未暂存)区域 输出:

$ rm PROJECTS.md
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
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)
 deleted: PROJECTS.md
no changes added to commit (use "git add" and/or "git commit -a")

然后,如果您 运行 git rm,它会分阶段删除文件:

$ git rm PROJECTS.md
rm 'PROJECTS.md'
$ git status
On branch master
Changes to be committed:
 (use "git reset HEAD <file>..." to unstage)
CHAPTER 2: Git Basics
56
 deleted: PROJECTS.md

下次提交时,文件将消失,不再被跟踪。如果你 已修改文件并将其添加到索引中,您必须强制删除 使用 -f 选项。这是一项安全功能,可防止意外删除数据 尚未记录在快照中且无法从中恢复的 Git。 您可能想要做的另一件有用的事情是将文件保存在您的工作中 树,但将其从暂存区中移除。换句话说,您可能想要 将文件保存在您的硬盘上,但 Git 不再对其进行跟踪。这是特别 如果你忘记添加一些东西到你的 .gitignore 文件并且不小心 上演它,就像一个大日志文件或一堆 .a 编译文件。去做这个, 使用 --cached 选项:

$ git rm --cached README

您可以将文件、目录和文件全局模​​式传递给 git rm 命令。 这意味着您可以执行以下操作:

$ git rm log/\*.log

注意*前面的反斜杠()。这是必要的,因为 Git 做到了 除了您的 shell 的文件名扩展之外,您自己的文件名扩展。这个 命令删除 log/ 目录中所有扩展名为 .log 的文件。 或者,您可以这样做:

$ git rm \*~

此命令删除所有以 ~ 结尾的文件。