programing

gitignore가 폴더를 무시하지 않음

padding 2023. 7. 7. 18:40
반응형

gitignore가 폴더를 무시하지 않음

내 프로젝트의 뿌리에는foo폴더를 누릅니다.내부foo가지고 있는 폴더bar폴더를 누릅니다.내 내부의 모든 파일에 대한 모든 변경 사항을 무시합니다.bar폴더를 누릅니다.내 안에 이것이 있습니다.gitignore:

/foo/bar

폴더가 선택되어 있습니다. 폴더가 존재하고 무시할 파일이 있습니다. gitignore이라committed. 하지만 내가 수정한 파일이 있고 내 안에 있습니다.bar폴더를 누릅니다.입력할 때

git status

내 안에git bash무시했어야 할 파일이 보입니다.이유는 무엇이며 어떻게 하면 막대 폴더 내의 모든 파일을 성공적으로 무시할 수 있습니까?

참고로 이전에는 파일이 동일한 줄로 무시되었지만 일시적으로 해당 줄을 제거해야 했습니다.commit서버에 있는 것.그 후에commit나는 라인을 다시 안으로 넣었습니다.gitignore이것은 조금 전의 일이지만, 나는 지금 그 파일들이 있을 것이라는 것을 관찰했습니다.git status무시된 파일을 수정할 수 있기를 기대합니다.git status.

이 폴더는 git에 체크인된 적이 있습니까?

달려.git rm -r --cached <folder>다시 확인합니다.

저에게 있어서, 받아들여진 대답은 전체적인 해결책이 아니라 해결책의 일부였습니다.아마도, 제가 게시하려는 다른 단계들은 분명했지만, 저는 먼저 그것들을 놓쳤습니다.다음은 제가 수행한 단계입니다..gitignore파일이 무시할 폴더를 무시했습니다.

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

여기에서 솔루션을 찾은 기사에 대한 링크를 찾을 수 있습니다.

이것으로 해결되었습니다.

나는 했었었소.echo node_modules >> .gitignore효과가 없었어요

Windows 터미널에서 파일을 저장합니다.UCS-2 LE BOM그리고 깃은 그것을 받아들이지 않는 것 같습니다.

나는 파일을 열었습니다.Notepad로 저장되었습니다.UTF-8인코딩

notepad save utf-8 encoding

이제 작동합니다.

제 생각에 그들은 이것을 고쳐야 할 것 같습니다.echo "filetoignore" >> .gitignore실제로 하기에 편리한 것처럼 보입니다.

저는 이 문제를 겪고 있었고 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.

에서 .를 .gitignore로 만들었습니다.echo "build" > .gitignoreUTF-16LE 인코딩으로 파일을 만들었습니다.Git는 파일의 내용을 인식하지 못했고 계속해서 보여주었습니다.build추적되지 않은 폴더입니다.나는 파일을 삭제하고 Geany 텍스트 편집기(UTF-8)에서 다시 생성했고 git는 이제 무시합니다.build폴더를 누릅니다.짧은 검색은 그 깃이 UTF-16을 좋아하지 않는다는 것을 다시 강조합니다.

대부분은 인코딩 문제입니다.따라서 .gitignore 파일을 삭제하고 다시 생성할 수 있습니다.

편집:

증명:

  1. test-gitignore라는 폴더 만들기
  2. 합니다.git init
  3. .env 파일을 만들고 여기에 추가합니다.
  4. 파일을 . 할 은 ".env 파일"을 하는 것입니다..gitignore 동일한 :.env그러나 .gitignore 파일을 만드는 방법은 중요합니다.파워셸의 에코 "echo >> .gitignore"를 사용하여 생성하면 git는 autf-8 인코딩된 .gitignore 파일을 예상하기 때문에 .env가 무시되지 않습니다. In PowerShell, the default encoding used by the echo command for writing text to a file is Unicode (UTF-16LE). This means that when you use the echo command to append text to a file using >>, the text will be written in UTF-16LE encoding.

이것이 바로 vscode 또는 autf-8 인코딩을 보장하는 도구를 사용하여 파일을 만드는 것이 중요한 이유입니다.

언급URL : https://stackoverflow.com/questions/24410208/gitignore-does-not-ignore-folder

반응형