[git] gitignore는 폴더를 무시하지 않습니다

내 프로젝트의 루트에는 foo폴더가 있습니다. foo폴더 안에 bar폴더가 있습니다. 내 bar폴더 내의 모든 파일에 대한 모든 변경 사항을 무시하고 싶습니다 . 나는 이것을 내 안에있다 gitignore:

/foo/bar

폴더가 확인되었습니다. 폴더가 존재하며 무시할 파일이 있습니다. gitignorecommit테드. 그러나, 나는 화를 내고 bar폴더 안에있는 파일을 가지고 있습니다 . 입력 할 때

git status

내 안에는 git bash무시해야 할 파일이 있습니다. 이유는 무엇이며 바 폴더 내의 모든 파일을 어떻게 무시할 수 있습니까?

파일은 이전에 동일한 줄로 무시되었지만 commit서버에서 그 줄을 일시적으로 제거해야했습니다 . 이후 commit에 나는에 줄을 다시 넣었다 gitignore. 이것은 얼마 전이지만 지금은 파일이에 있음을 알았습니다 git status. 에 표시되지 않은 무시 된 파일을 수정할 수있을 것으로 기대합니다 git status.



답변

이 폴더가 이전에 자식으로 체크인 된 것 같아요?

실행 git rm -r --cached <folder>하고 다시 확인하십시오.


답변

나에게 받아 들여진 대답은 전체 솔루션이 아니라 솔루션의 일부였습니다. 어쩌면 게시하려는 다른 단계가 분명했지만 먼저 누락되었습니다. 내 .gitignore파일에서 무시하려는 폴더를 무시 하도록하기 위해 수행 한 단계는 다음과 같습니다 .

  1. 수정 / 변경해야 할 변경 사항을 커밋하십시오.
  2. 이 명령을 실행하십시오 : git rm -r --cached .(git 저장소를 새로 고치기 위해 git 인덱스에서 모든 것을 제거합니다)
  3. 그런 다음이 명령을 실행하십시오 : git add .(모든 것을 repo에 다시 추가하려면)
  4. 마지막으로 다음을 사용하여 이러한 변경 사항을 커밋하십시오. git commit -m ".gitignore Fixed"

당신은 내가 해결책을 찾을 곳에서 기사의 링크를 찾을 수 있습니다 여기를 .


답변

나는이 문제를 겪고 있었고 git이 실제로 파일 / 폴더를 올바르게 무시하고 있음을 깨달았지만 내 코드 편집기 (Visual Studio Code)는 버그가 많았고 UI 사이드 바에서 제대로 “회색되지 않습니다”. VSCode를 다시 시작했는데 예상대로 회색으로 표시되었습니다.


답변

허용 된 답변에 추가로

git rm -r --cached /foo/bar/
git status

내가 그렇게하면 터미널은 rm그 디렉토리에 있는 많은 파일을 보여줍니다 . 따라서 원격에 불필요하게 영향을 줄 수있는 다른 커밋을 방지하기 위해 다음과 같이했습니다.

git reset HEAD *
git status

그 후, 그것은 커밋 할 것이 없으며 내부 파일을 수정 /foo/bar/하고 git status여전히 얻을 수 있다고 말했습니다 nothing to commit.


답변