Programing

실제로 존재하는 파일을 제거 할 수 없음-치명적 : pathspec… 파일과 일치하지 않습니다

crosscheck 2020. 6. 10. 08:21
반응형

실제로 존재하는 파일을 제거 할 수 없음-치명적 : pathspec… 파일과 일치하지 않습니다


실제로 존재하는 파일을 제거 할 수 없음-치명적 : pathspec ... 파일과 일치하지 않습니다

자식 컨트롤 아래에 단순히 삭제되지 않는 파일이 있습니다. 실패한 명령은 다음과 같습니다.

$ git rm .idea/workspace.xml
fatal: pathspec '.idea/workspace.xml' did not match any files

아래에는 디렉토리 내용, 분기 등이 나열되어 있습니다. 지금까지 디렉토리 내에서 rm을 시도하고 재미있는 문자가있는 경우를 대비하여 탈출했으며 실제로 혼란에 빠졌습니다. 웹과 SO를 검색했지만 구체적으로 찾을 수 없습니다. 미리 감사드립니다!

$ git branch -a
* dot-output
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/modelspace
$ 

$ git status
# On branch dot-output
# Untracked files:
# ...

$ ls .idea/
ant.xml         encodings.xml       modules.xml     workspace.xml
compiler.xml        inspectionProfiles  scopes
copyright       libraries       testrunner.xml
dictionaries        misc.xml        vcs.xml

$ ls -al
total 56
drwxr-xr-x  16 matt  staff    544 Apr 10 11:33 .
drwxr-xr-x@ 33 matt  staff   1122 Apr 10 09:40 ..
-rw-r--r--@  1 matt  staff  12292 Apr 10 11:19 .DS_Store
drwxr-xr-x  18 matt  staff    612 Apr 10 11:39 .git
-rw-r--r--   1 matt  staff     98 Mar  6 13:40 .gitignore
drwxr-xr-x  16 matt  staff    544 Apr 10 11:34 .idea
-rw-r--r--   1 matt  staff   1113 Feb 25 11:07 README
...

$ head -n 2 .idea/workspace.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">

$ git rm .idea/workspace.xml
fatal: pathspec '.idea/workspace.xml' did not match any files

최신 정보: Nevik과 Boris의 답변이 많은 도움이되었습니다. 나는 여러 가지 일로 혼란스러워했으며 IntelliJ IDEA (일반적으로 내가 좋아하는 도구 인 BTW)에 의해 악화되었습니다. 먼저, git rm의 'fatal : pathspec'메시지는 도움이되지 않고 오도 할 수 있습니다 (이 바닐라 사용자의 견해로는). 둘째, 파일은 .gitignore에 있었지만 질문하기 전에 파일을 제거했습니다. 그러나 그것은 또한 git와 독립적으로 IDEA의 Ignored Files 기능에 포함되었으며 프로젝트 뷰어에서 (git 상태가 보여주는 것처럼 추적되지 않는 대신) 보여졌습니다. 마지막으로 실험하는 동안 IDEA가 실행 중이며 rm 직후에 파일을 다시 작성하는 것처럼 보입니다. 따라서, Git 동작이 혼란스러워지면 디버깅하는 동안 IDEA를 종료하고 명령 줄 (및 gitk)에서 솔리를 작동시켜야합니다. 그리고 그 SO 사용자는 훌륭합니다. 다시 감사합니다!


파일 .idea/workspace.xml이 자식 버전 제어하에 있지 않습니다. 아직 추가하지 않았거나 (git 상태 / 추적되지 않은 파일 확인) 무시했습니다 (.gitignore 또는 .git / info / exclude 파일 사용)

무시되는 모든 파일을 나열하는 다음 git 명령을 사용하여 확인할 수 있습니다.

git ls-files --others -i --exclude-standard

$>git add .
$>git rm file_Name  

효과가있다. 마우스 오른쪽 버튼으로 클릭-> 새 파일 만들기를 사용하여 새 파일을 추가 한 다음 즉시 삭제하십시오. 파일이 추적되지 않은 파일 목록으로 이동합니다.


나는 이것이 OP의 문제가 아니라는 것을 알고 있지만 완전히 다른 기준으로 동일한 오류가 발생했기 때문에 다른 사람이 동일한 경우 여기에 드롭하고 싶었습니다. 이것은 Windows마다 다르며 Linux 사용자에게는 영향을 미치지 않는다고 가정합니다.

I had a LibreOffice doc file, call it final report.odt. I later changed its case to Final Report.odt. In Windows, this doesn't even count as a rename. final report.odt, Final Report.odt, FiNaL RePoRt.oDt are all the same. In Linux, these are all distinct.

When I eventually went to git rm "Final Report.odt" and got the "pathspec did not match any files" error. Only when I use the original casing at the time the file was added -- git rm "final report.odt" -- did it work.

Lesson learned: to change the case I should have instead done:

git mv "final report.odt" temp.odt
git mv temp.odt "Final Report.odt"

Again, that wasn't the problem for the OP here; and wouldn't affect a Linux user, as his posts shows he clearly is. I'm just including it for others who may have this problem in Windows git and stumble onto this question.


If your file idea/workspace.xml is added to .gitignore (or its parent folder) just add it manually to git version control. Also you can add it using TortoiseGit. After the next push you will see, that your problem is solved.

Add to git versioning using TortoiseGit


In my instance, there was something completely odd that I'm not sure what the cause was. An entire folder was committed previously. I could see it in Git, Windows Explorer, and GitHub, but any changes I made to the folder itself and the files in it were ignored. Using git check-ignore to see what was ignoring it, and attempting to remove it using git rm --cached had no impact. The changes were not able to be staged.

I fixed it by:

  1. Making a copy of the folder and files in another location.
  2. I deleted the original that was getting ignored somehow.
  3. Commit and push this update.
  4. Finally, I added the files and folder back and git was seeing and reacting to it as expected again.
  5. Stage and commit this, and you're good to go! :)

Personally I stumbled on a similar error message in this scenario:

I created a folder that has been empty, so naturally as long as it is empty, typing git add * will not take this empty folder in consideration. So when I tried to run git rm -r * or simply git rm my_empty_folder/ -r, I got that error message.

The solution is to simply remove it without git: rm -r my_empty_folder/ or create a data file within this folder and then add it (git add my_no_long_empty_folder)


Move temporarily .gitignore to .gitignore.bck

참고URL : https://stackoverflow.com/questions/15931238/unable-to-remove-file-that-really-exists-fatal-pathspec-did-not-match-any

반응형