하지 - gitignore not working




.gitignore가 작동하지 않습니다. (17)

.gitignore 파일이 git에서 무시되는 것 같습니다 .gitignore 파일이 손상 될 수 있습니까? git이 예상하는 파일 형식, 로켈 또는 문화권은 무엇입니까?

.gitignore :

#this is a comment
debug.log
nbproject/

git status 에서 출력 :

# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       debug.log
#       nbproject/
nothing added to commit but untracked files present (use "git add" to track)

debug.lognbproject/ untracked 파일 목록에 나타나지 싶습니다.

이 문제를 해결하기 위해 어디에서 시작해야합니까?


Notepad ++ 사용자 인 경우 다음을 수행하십시오.

Notepad ++를 사용하여 .gitignore 파일을 열고 다음을 수행하십시오.

편집> EOL 변환> Windows 포맷> 저장

git status를 다시 사용하여 작동했는지 확인하십시오.

비슷한 질문에 대한 답변을 게시했습니다.


Windows 사용자의 경우 : Untracked 파일이 있고 캐시 된 파일을 지우거나 제거하면 작동하지 않습니다. PowerShell을 열고 .gitignore 파일을 UTF-8 인코딩으로 변환 해보십시오.

1) $ Myfile = Get-Content ..gitignore

2) $ Myfile = | Out-File -Encoding "UTF8".gitignore

해당 디렉토리에 대해 .gitignore 파일을 인코딩하려면이 작업을 한 번 수행해야하며, 나중에 파일을 편집 할 때마다 파일이 올바르게 인코딩되므로 제대로 작동해야합니다. 이것은 GitHub가 .gitignore 파일을위한 UTF-8이 아닌 인코딩을 읽지 않는 것에 기인합니다. 내가 아는 한이 문제는 아직 Windows에서 해결되지 않았습니다. 너무 큰 거래는 아니며, 작동하지 않을 때 디버깅하기가 쉽지 않습니다.


결정된. 좋아, 창문에 메모장에 .gitignore 파일을 만들었고 작동하지 않았다. 리눅스에서 .gitignore 파일을 보았을 때 조직적인 횡설수설처럼 보였습니다. 아마도 메모장은 ASCII 나 8 비트가 아닌 유니 코드를 작성했을 것입니다.

그래서 나는 내 리눅스 상자에 파일을 다시 썼다. 그리고 창문으로 다시 가져 왔을 때 잘 동작한다. 만세!


나는 이것에 대해 약간의 문제가 있었다. 나는 www.GitHub.com/project에 가서 UI로 파일을 지우고 그 변화를 마스터 레포에 추가 할 수 있었다.

내가 .gitignore를 만들기 전에 파일을 repo에 추가 한 것처럼 보입니다. 이것은 작동하는 것 같습니다.


나에게는 아직 또 다른 문제였다. 내 .gitignore는 무시하지 말 것을 제외한 모든 것을 무시하도록 설정되어 있습니다. 같은 :

/*
!/content/

이제 이것은 분명히 git에게 .gitignore 자체를 무시하도록 명령하고 있음을 의미합니다. 나는 .gitignore를 추적하지 않는 한 문제가되지 않았다. 그러나 어떤 점에서 나는 .gitignore 그 자체를 위탁했다. 그 결과 .gitignore가 제대로 무시되었습니다.

그래서 한 줄 더 추가하면 다음과 같이 수정되었습니다.

/*
!/content/
!.gitignore

내 경우에는 파일이 이미 repo에 존재하고이를 무시하려고하기 때문입니다.

문제를 해결하기 위해 내가 한 일들은 다음과 같습니다.

  • 임시 폴더에 파일 복사
  • 내 프로젝트 폴더에서 제거하십시오.
  • 해당 파일을 저장소에서 제거하는 변경 사항 적용
  • 해당 파일을 내 프로젝트 폴더에 다시 추가했습니다.

그때까지, 그 파일들에 대한 모든 변경 사항은 무시되었습니다.

나는 당신이 이미 repo에 존재하는 파일을 무시할 수 없다고 생각합니다.


다른 솔루션과 마찬가지로 먼저 커밋을하고 커밋되지 않은 변경 사항이 손실된다는 점에 유의하십시오.

나는 이것으로 더 나은 결과를 얻었다 :

git rm -r --cached .
git reset HEAD --hard
git status

상태에는 수정 된 파일이 없어야합니다.


다음과 같이 인라인 주석이 있으면 .gitignore 파일이 작동하지 않습니다.

foo/bar # The bar file contains sensitive data so we don't want to make this public

그것을 다음과 같이 변경하십시오.

# The bar file contains sensitive data so we don't want to make this public
foo/bar

방금이 문제에 부딪 혔습니다. 내 .gitignore 파일의 내용이 추적되지 않은 파일 목록에 계속 나타납니다.

이 무시 파일을 만드는 데 사용하고 :

echo "node_modules" > .gitignore

큰 따옴표로 인해 문제가 발생했다. 무시 파일을 삭제하고 따옴표없이 명령을 다시 사용하면 예상대로 작동했습니다. 나는 파일 인코딩을 망칠 필요가 없었다. Cmder를 사용하는 Win10 머신입니다.

예:

echo node_modules > .gitignore


여기에있는 모든 대답은 실제로 해결 방법입니다. git init 을 실행하기 전에 .gitignore 파일을 만들어야합니다. 그렇지 않으면 이미 추적 되었기 때문에 git init 을 사용하여 파일을 무시해야합니다.

echo .idea/ >> .gitignore
git init

일상적으로 개발하는 경우 습관적으로 무시되는 파일을 ~/.gitignore_global 파일에 추가하는 것이 좋습니다. 그렇게하면, git 은 보통 당신의 파일 (홈 디렉토리의 파일이기 때문에 "사용자"를 의미 함)이 무시한다는 것을 이미 알고있을 것입니다.


이 문제의 또 다른 원인은 문장 앞의 공백이나 탭입니다.

예:

#Be aware of following:
 notWorkingIgnore.*
workingIgnore.*

그리고 주석에 의해 지적 된 바와 같이 후행 공간은 문제가 될 수 있습니다.

#Be aware of following:
notWorkingIgnore.* #<-Space
workingIgnore.*#<-Nospace

이 줄이 들어있는 .gitignore를 사용하여이 문제가 발생했습니다.

lib/ext/

방금 사실,이 디렉토리는 다른 곳의 폴더에 대한 심볼릭 링크입니다.

ls -la lib/ext/
lrwxr-xr-x 1 roipoussiere users 47 Feb  6 14:16 lib/ext -> /home/roipoussiere/real/path/to/the/lib

lib/ext/ 라인에서 git은 실제로 폴더를 찾지만 심볼릭 링크는 파일 이므로 내 lib 폴더는 무시되지 않습니다.

내 .gitignore에서 lib/ext/lib/ext 로 대체하여이 문제를 해결했습니다.



지금까지 파일을 추적하지 않았더라도 .gitignore 추가 한 후에도 자식에 대해 "알 수"있는 것처럼 보입니다.

참고 : 먼저 현재 변경 내용을 커밋하거나 잃게됩니다.

그런 다음 git repo의 최상위 폴더에서 다음 명령을 실행하십시오.

git rm -r --cached .
git add .
git commit -m "fixed untracked files"

한가지 살펴보아야 할 것은 .gitignore 파일을 올바른 줄 끝으로 저장하고있는 것입니까?

창 : 창에서 사용하는 경우 창 줄 끝으로 저장합니까? 모든 프로그램이 기본적으로이 작업을 수행하는 것은 아니며 notepad ++와 많은 PHP 편집기가 리눅스 라인 엔딩을 기본으로하므로 파일은 서버와 호환 될 것입니다. 이를 확인하는 쉬운 방법은 Windows 메모장에서 파일을 여는 것입니다. 모든 것이 한 줄에 나타나면 파일은 리눅스 줄 끝으로 저장됩니다.

리눅스 : 리눅스 환경에서 작동하는 파일에 문제가 있다면. emacs 또는 nano와 같은 편집기에서 파일을 엽니 다. 인쇄 할 수없는 문자가 있으면 파일이 Windows 줄 끝으로 저장됩니다.


.gitignore 와 관련된 또 다른 문제가 있는데, 특히 Windows 사용자의 경우 git는 .gitignore (예 : unity.gitignore )의 이름을 지정할 때이 파일을 좋아하지 않습니다. 당신은 항상 그것을 .gitignore , 또는 창문, .gitignore. 지명하고 싶을 것이다 .gitignore. Windows에서는 파일 이름없이 이름을 바꾸려고한다고 생각하기 때문입니다.


.gitignore 파일을 sudo 명령으로 편집했을 가능성도 있습니다. 동일한 문제가 발생하여 명령을 실행하는 중 : git status , "무시해야합니다"파일을 볼 수 있습니다.

sudo nano .gitignore nano .gitignore 대신 nano .gitignore 편집 할 때 정확한 반사음을 볼 수있었습니다.





gitignore