Gitignore가 작동하지 않습니다 .gitignore파일이 어떤 이유로 작동하지

.gitignore파일이 어떤 이유로 작동하지 않으며, 어느 정도의 인터넷 검색으로이를 수정할 수 없습니다. 여기 내가 가진 것입니다 :

*.apk
*.ap_
*.dex
*.class
**/bin/
**/gen/
.gradle/
build/
local.properties
**/proguard/
*.log

그것은 mastergit repo 인 디렉토리 에 있습니다. OSX 10.8.6을 실행하는 MacBook에서 Git 1.8.4.2를 실행하고 있습니다.



답변

버전 관리의 파일 / 폴더는 파일을 폴더에 추가했기 때문에 삭제되지 않습니다 .gitignore. 이미 리포지토리에 있으므로 제거해야합니다. 다음과 같이하면됩니다.

( 이 작업을 수행하기 전에 변경 한 모든 내용을 커밋하십시오. )

git rm -rf --cached .
git add .

이렇게하면 리포지토리에서 모든 파일이 제거되고 다시 추가됩니다 (이번에는의 규칙에 따라 .gitignore).


답변

리포지토리에 이미 추가 / 초기화되어있는 단일 파일의 추적을 해제하려면 (예 : 파일 추적을 중지하지만 시스템에서 삭제하지는 마십시오) git rm --cached filename

당신의 지금있는 모든 파일을 untrack하려면 .gitignore:

먼저 미해결 코드 변경 사항을 커밋 한 후 다음 명령을 실행하십시오.

git rm -r --cached .

이렇게하면 인덱스 (스테이징 영역)에서 변경된 파일이 모두 제거되고 다음을 실행합니다.

git add .

커밋 :

git commit -m ".gitignore is now working"

답변

이 질문에 대한 답을 따르려고 약간의 토끼 구멍을 내려간 후 (아마도 비주얼 스튜디오 프로젝트 에서이 작업을 수행해야했기 때문에) 더 쉬운 길은

  1. 더 이상 추적하지 않으려는 파일을 잘라내어 붙여 넣기

  2. 해당 파일의 “삭제”커밋

  3. .gitignore임시로 이동 한 파일을 제외하도록 수정을 커밋

  4. 파일을 폴더로 다시 이동하십시오.

나는이 그것에 대해 이동하는 가장 정직 방법이 (적어도 비주얼 스튜디오에서, 또는 내가 안드로이드 스튜디오와 같은 다른 IDE를 당겨 기반 환경을 가정 할 것이다) 실수로 꽤 보급과 발에 자신을 촬영하지 않고, 발견 git rm -rf --cached ., 그 후 내가 작업했던 Visual Studio 프로젝트가로드되지 않았습니다.


답변

필자의 경우 메모장에서 파일을 열 때 명확하게 표시되는 파일 시작 부분의 빈 공간 이 Visual Studio Code에서 명확하지 않았습니다.


답변

나는 .gitignore나에게 공통적 인 것을 생성하기 위해 무언가를 사용 했고 나는 이것을 만났다. @ Ozesh 답변을 읽은 후 VS 코드에서 열었습니다. 오른쪽 하단에 줄 끝 유형을 보여주는 멋진 표시기가 있기 때문입니다. LF이므로 제안한대로 주사위를 사용하지 않고 CRLF로 변환했습니다.

그런 다음 줄 끝을보고 UTF16을 사용하여 저장되었음을 알았습니다. 그래서 voila 인코딩 UTF8을 사용하여 다시 저장했습니다. CRLF가 중요하다고 생각하지 않았으므로 LF로 다시 변경했는데 여전히 작동했습니다.

물론 파일을 이미 커밋하여 이미 색인을 생성했기 때문에 이것은 OP 문제가 아니지만 다른 사람 이이 문제를 우연히 발견하면 공유 할 것이라고 생각했습니다.

TLDR ; 아직 파일을 커밋하지 않고 .gitignore가 여전히 존중되지 않으면 파일 인코딩을 확인하고 UTF8을 확인하고 작동하지 않으면 줄 끝을 어지럽히십시오.


답변

필자의 경우 .gitignore 줄 끝에 공백이 원인이었습니다. 따라서 .gitignore에서 공백을 조심하십시오!


답변

다음을 수행하면서 문제를 해결했습니다.

우선, 나는 Windows 사용자이지만 비슷한 문제에 직면했습니다. 그래서 여기에 솔루션을 게시하고 있습니다.

때때로 .gitignore가 예상대로 작동하지 않는 간단한 이유가 있습니다. EOL 변환 동작 때문입니다.

여기에 대한 빠른 수정이 있습니다.

편집> EOL 변환> Windows 형식> 저장

텍스트 편집기 설정비난 할 수 있습니다 .

예를 들면 다음과 같습니다.

저는 Windows 개발자이므로 일반적으로 Vim 사용자와 달리 텍스트를 편집 할 때 메모장 ++ 을 사용 합니다.

메모장 ++를 사용하여 .gitignore 파일을 열면 다음과 같이 나타납니다.

## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore


# See https://help.github.com/ignore-files/ for more about ignoring files.

# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
*.dll
*.force
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs

기본 메모장을 사용하여 동일한 파일을 열면 이것이 내가 얻는 것입니다.

## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. ## ## Get latest from  https://github.com/github/gitignore/blob/master/VisualStudio.gitignore # See https://help.github.com/ignore-files/ for more about ignoring files. # User-specific files *.suo *.user *.userosscache

따라서 출력을 보면 이미 추측했을 것입니다. .gitignore의 모든 것이 하나의 라이너가되었으며 시작에 # #이 있기 때문에 모든 것이 주석 처리 된 것처럼 작동합니다.

이 문제를 해결하는 방법은 간단합니다. Notepad ++로 .gitignore 파일을 연 후 다음을 수행하십시오.

편집> EOL 변환> Windows 형식> 저장

다음에 Windows 기본 메모장으로 동일한 파일을 열면 모든 것이 올바르게 포맷되어야합니다. 시도해보고 이것이 효과가 있는지 확인하십시오.