Git가 지정된 파일을 무시하지 않는 이유는 무엇입니까?
는 다음행추니다습에 했습니다..gitignore
:
sites/default/settings.php
하지만 제가 타이핑할 때git status
파일이 준비되지 않은 파일로 표시됩니다.
문제가 뭐죠?다른 모든 패턴은 잘 작동합니다.
다음 항목을 확인합니다..gitignore
디렉터리의 , 에서 작업디리루있트으며, 해디리서실다니행됩을 실행합니다.git status
상태 출력에서 파일로 경로를 복사하여 파일에 붙여넣습니다..gitignore
.
만약 그것이 작동하지 않는다면, 당신의 파일은 이미 Git에 의해 추적되고 있을 가능성이 높습니다.를 확인할 수 의 출력입니다.git status
파일이 "Untracked files" 섹션에 나열되지 않은 경우 Git에 의해 이미 추적되고 Git는 해당 파일의 규칙을 무시합니다..gitignore
java.
Git에서 파일을 무시하는 이유는 저장소에 추가되지 않기 위해서입니다.무시할 파일을 이전에 추가한 경우 Git에 의해 추적되고 이와 일치하는 무시 규칙은 건너뜁니다.파일이 이미 리포지토리의 일부이기 때문에 Git이 이 작업을 수행합니다.
파일을 실제로 무시하려면 추적을 해제하고 저장소에서 제거해야 합니다.를 사용하여 이 작업을 수행할 수 있습니다.git rm --cached sites/default/settings.php
할 수 --cached
변경을 수행하면 파일이 저장소에서 제거되고 무시해도 제대로 작동합니다.
오래된 질문이지만 특정 작업 복사본에서 추적하지 않고 실행할 수 있도록 파일을 추적합니다.
git update-index --assume-unchanged sites/default/settings.php
이 명령을 사용하십시오.
git rm -rf --cached .
git add .
.gitignore 파일이 올바르더라도 작동하지 않는 경우가 있습니다.Git가 파일을 무시하는 이유는 파일이 저장소에 추가되지 않았기 때문입니다.이전에 무시할 파일을 추가한 경우 Git에 의해 추적되며 일치 규칙을 건너뜁니다.Git는 파일이 이미 리포지토리의 일부이기 때문에 이 작업을 수행합니다.
.gitignore는 저장소에 아직 추가하지 않은 파일만 무시합니다.
이신▁a이▁you▁did당▁if신.git add .
그리고 파일이 인덱스에 추가되었습니다. .gitignore는 도움이 되지 않습니다.당신은 해야 할 것입니다.git rm sites/default/settings.php
제거하면 무시됩니다.
저도 같은 문제가 있었습니다.
에 .gitingore
서 실시 추지않파위나치를 할 때 됩니다.git status
.
이것은 왜냐하면.gitignore
파일이 저장되었습니다.UTF-16LE
및이 아닌 에음다인,▁encodingUTF8
부호화
한 후.gitignore
을 로다철하에 합니다.UTF8
효과가 있었습니다.
설정을 무시하기 위해 한 일.php 파일 성공:
- gitrm --sites/default/message.php
- 커밋(여기까지 작동하지 않음)
- 수동으로 삭제된 사이트/default/details.details(이것으로 성공)
- git add
- 커밋(성공적으로 완료됨)
Git에 커밋된 파일이 있으면 ignore가 예상대로 작동하지 않는다고 생각합니다.파일을 삭제하고 커밋하기만 하면 됩니다.나중에 무시됩니다.
예를 들어, 예를 들어,.gitignore는 작동하지 않지만 로컬 설정을 위해 변경해야 하는 응용 프로그램 구성 파일입니다.이러한 파일을 관리하거나 수정된 파일로 표시하지 않습니다.이렇게 하려면 작업 건너뛰기 트리를 사용합니다.
git update-index --skip-worktree path/to/file
파일을 나열하고 건너뛴 경우 S로 시작하는 줄을 확인하여 파일을 건너뜁니다.
git ls-files -v | grep ^S
나중에 git에서 파일을 로컬로 다시 관리하려면 다음을 실행하십시오.
git update-index --no-skip-worktree path/to/file
위의 메스칼리토는 훌륭한 대답을 했고, 그것은 나를 올바른 길로 이끌었지만.
git update-index --discovery-discovery 파일/to/discovery.php
사용자가 파일을 변경하지 않겠다고 약속하고 Git가 작업 트리 파일이 인덱스에 기록된 것과 일치한다고 가정할 수 있도록 허용하는 Git와 계약을 맺습니다.
그러나 파일의 내용을 변경하므로, 저의 경우 --skip-worktree가 더 나은 선택사항입니다.
Toshiharu Nishina의 웹사이트는 스킵 워크 트리와 변경되지 않은 것에 대한 훌륭한 설명을 제공했습니다.로컬에서 Git로 이미 관리되는 파일 무시
또 다른 가능한 이유는 Git 클라이언트가 동시에 실행되는 몇 가지 인스턴스입니다.예를 들어 "git shell" + "gitHub Desktop" 등입니다.
이런 일이 저에게 일어났고, 저는 "GitHubDesktop"을 주 클라이언트로 사용하고 있었는데 그것은 몇 가지 새로운 .gitignore 설정을 무시하고 있었습니다: commit after commit:
- 당신은 뭔가를 저지릅니다.
- 다음으로 commit: .gitignore 설정을 무시합니다.커밋에는 .gitignore에 언급된 많은 임시 파일이 포함됩니다.
- git 캐시를 지웁니다. gitignore가 UTF8인지 확인합니다. 파일 제거 -> 커밋 -> 파일을 뒤로 이동합니다. 1 커밋을 건너뛰면 아무 도움이 되지 않습니다.
이유: Visual Studio Code 편집기가 열려 있는 동일한 리포지토리로 백그라운드에서 실행되고 있습니다.VS Code에는 기본적인 제어 기능이 있으며 이로 인해 충돌이 발생합니다.
해결책: 특히 깃 캐시를 지우는 동안 여러 개의 숨겨진 깃 클라이언트를 두 번 확인하고 한 번에 하나의 깃 클라이언트만 사용합니다.
.gitignore에 확장자가 없는지 확인합니다!!.gitignore일 리가 없습니다.txt, 창에서 파일 이름을 .gitignore.로 지정하면 작동합니다.
미래의 누군가가 나와 같은 문제를 가질 경우를 대비해서,
를 사용하는 경우
*
!/**/
!*.*
확장자가 없는 이진 파일을 제거하는 방법입니다. 다른 모든 Gitignore 행이 아래에 있는지 확인하십시오. Git는 위에서 .gitignore에서 읽을 것입니다. 그래서 Gitignore에 'test.go'가 있었지만, 파일에서 처음이었고, 이후 '무시'가 되었습니다.
!*.*
VS Code 터미널에서 위의 대부분의 명령을 시도해 보았는데 다음과 같은 오류가 발생했습니다.
fatal: pathspec '[dir]/[file]' did not match any files
나는 GitHub Desktop에서 프로젝트를 열었고 거기서 무시했고 작동했습니다.
여기서 훌륭한 답변에서 놓친 한 가지는 다른 .gitignore 또는 여러 개의 .gitignore가 존재한다는 것입니다.
예를 들어, 저는 repo를 복제했는데 git add를 실행할 때 "무시된" 파일이 다시 추가되는 이유를 알 수 없었습니다.하위 폴더에 다른 .gitignore가 있고 루트 폴더에 있는 .gitignore를 재정의하는 것으로 확인되었습니다.
/.gitignore
/some-folder/.gitignore
/some-folder/this-file-keeps-getting-staged
그
root /.gitignore
무시하고 있었습니다.this-file-keeps-getting-staged
그
/some-folder/.gitignore
무시할 사양이 없습니다. "this-file-keeps-getting-staged
철하다
따라서 문제가 발생합니다.
그 중 하나는 간단히 검색하는 것입니다.multiple .gitignore
계층 구조의 파일입니다.그리고 그것들이 적용되는 규칙들을 생각해보세요.
git 1.7.3.1을 사용하여 이를 시도했고 다음과 같은 구조를 제공했습니다.
repo/.git/
repo/.gitignore
repo/sites/default/settings.php
어디에repo
따라서 위에 언급된 "뿌리"입니다(저는 그것을 당신의 작업 트리의 뿌리라고 부릅니다)..gitignore
포함만sites/default/settings.php
무시는 나에게 효과가 있습니다(그리고 그것은 중요하지 않습니다)..gitignore
보고서에 추가되었는지 여부).이것이 당신의 레포 레이아웃과 일치합니까?그렇지 않다면 무엇이 다릅니까?
한 가지 까다로운 문제는 만약 당신이 무언가를 한다면,echo node_modules >> .gitignore
,작동이 안될 거에요.Windows 터미널은 파일을 저장합니다.UCS-2 LE BOM
그리고 깃은 그것을 받아들이지 않는 것 같습니다.
다음을 사용하여 파일을 열 수 있습니다.Notepad
그리고 그것을 저장합니다.UTF-8
encoding
이제 작동합니다.
제 생각에 그들은 이것을 고쳐야 할 것 같습니다.echo "filetoignore" >> .gitignore
하게 할 수 것처럼 보입니다.
저도 같은 문제가 있었습니다.Win10에서 Geany 편집기를 사용했고 UNIX 라인엔드를 사용합니다.이제 메모장을 사용하여 .gitignore를 만들었습니다.exe 그리고 모든 것이 좋습니다.
언급URL : https://stackoverflow.com/questions/3833561/why-doesnt-git-ignore-my-specified-file
'bestsource' 카테고리의 다른 글
Mac App Store에서 Xcode를 설치할 수 없습니다. 디스크 공간이 부족합니다. (0) | 2023.05.04 |
---|---|
Excel: 셀 색상을 기준으로 조건식을 만들 수 있습니까? (0) | 2023.05.04 |
파이썬의 인쇄 기능을 "해킹"할 수 있습니까? (0) | 2023.05.04 |
SQL Server 날짜/시간을 더 짧은 날짜 형식으로 변환 (0) | 2023.05.04 |
ssh를 통해 git 클론 생성 (0) | 2023.05.04 |