我推了一个分支而没有注意到分支下的变化。我的远程分支中有一个名为\
的文件。我使用过git rm \ .
。但没有运气。请帮我删除文件。
由于
答案 0 :(得分:2)
反斜杠很可能被shell用作转义字符。要将实际反斜杠传递给程序的命令行,大多数shell都允许您自行转义它或使用引号来告诉shell不要特别解释它。
git rm \\
git rm '\'
答案 1 :(得分:0)
要从Git中删除文件,您必须将其从跟踪的文件中删除(更多信息 准确地说,从暂存区域中删除它然后提交。 git rm 命令执行此操作,并从工作目录中删除该文件 下次你不会把它看作未跟踪的文件。 如果您只是从工作目录中删除该文件,它将显示在 您的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
您可以将文件,目录和文件 - glob模式传递给git rm命令。 这意味着您可以执行以下操作:
$ git rm log/\*.log
注意*前面的反斜杠()。这是必要的,因为Git做到了 除了shell的文件名扩展外,还有自己的文件名扩展。这个 命令将删除log /目录中具有.log扩展名的所有文件。 或者,您可以这样做:
$ git rm \*~
此命令将删除以〜。
结尾的所有文件