git update-index --discovery-discovery가 "파일을 표시할 수 없음"을 반환합니다.
저는 이 게시물의 OP와 같은 문제를 겪고 있지만 정답으로 표시된 답변을 이해하지 못합니다(상황을 해결하는 방법을 설명하지 못합니다).
이 작업을 수행하면 다음 오류가 발생합니다.
$ git update-index --assume-unchanged web.config
fatal: Unable to mark file web.config
파일이 리포지토리에 추가됩니다.
다음에 없습니다.
.git/info/exclude
다음에 없습니다.
.gitignore
(web.config, web.를 사용하여) 강제로 web.git add -f web.config
헌신적이고 변경 사항을 레포로 밀어넣음)내가 Gitls-files -o를 할 때 그것은 없습니다.
그래서 제가 무엇을 고칠 수 있을까요?
저는 당신과 같은 문제를 겪고 있었고, 당신이 위에서 지적한 것과 같은 네 단계를 수행했고, 같은 결과를 얻었습니다.여기에는 실행할 때 내 파일이 나열되었다는 사실이 포함되어 있습니다.git ls-files -o
하지만 저의 경우에는, 저는 또한 실행을 시도했습니다.git update-index --assume-unchanged
시나지않대해를 할 때 ls-files -o
저는 여전히 "그리고는저여같받오았니다습를류은히전.""를 받았습니다.fatal: Unable to mark file
".
저는 아마도 버그일 것이라고 생각하고 최신 버전의 git를 다운로드했지만, 이것은 도움이 되지 않았습니다.
마침내 깨달은 것은 이 명령어는 대소문자를 구분한다는 것입니다! 여기에는 전체 경로 및 파일 이름이 포함됩니다.전체 경로가 적절한 케이스로 지정되도록 디렉터리 경로를 업데이트한 후 명령이 제대로 실행되었습니다.
Windows용 Git의 경우에는 다른 플랫폼에 따라 결과가 달라질 수 있습니다.
Mac에서도 같은 문제가 발생했습니다.대/소문자 구분은 문제가 되지 않았습니다. 문제는 GIT를 먼저 재설정해야 한다는 것이었습니다.
문제:
git update-index --assume-unchanged index.php
fatal: Unable to mark file index.php
솔루션:
git reset HEAD
Unstaged changes after reset:
M index.php
git update-index --assume-unchanged index.php
저의 경우, 제가 표시한 트리는 당신의 경우처럼 파일이 아닌 디렉토리였고, 이름 뒤에 슬래시가 누락되었습니다.
올바르지 않음 -
git update-index --assume-unchanged directory-name
정답 -
git update-index --assume-unchanged directory-name/
메모끝의 슬래시(/)
gitrepo에 파일이 추가되었는지 확인하고, 파일 gitrepo를 추가하지 않으면 작동합니다.
fatal: Localization/el-GR.js 파일을 표시할 수 없습니다.
할 수 있는 일은 다음과 같습니다.
- 파일이 로컬(GITBASH)에 있는 올바른 경로로 이동합니다.
-
$git update-index --assume-unchanged <file name>
이것은 나에게 도움이 되었습니다! :)
--assume-unchanged
느린 파일 시스템에 관한 것으로, 사용자는 Git이 이 파일을 확인할 필요가 없다고 약속합니다. Git은 이 파일을 변경하지 않았다고 가정할 수 있습니다.하지만 일부 명령은 여전히 확인하고 '깜짝'을 생성합니다!
변경된 파일에는 사용하지 마십시오.
그 소식을 전하게 되어 죄송합니다. (문서를 변경하기 위해 패치를 진행 중입니다.
저의 경우, 위의 방법 중 하나를 사용하려고 했지만 실패했습니다.
여러 번 시도한 후에, 저는 제 파일을 색인화하기 위해 추가하려고 생각했습니다.
git add myfile.php
Git은 이 행동을 거부했지만 그는 나에게 그것을 강제로 하라고 충고했습니다.
git add myfile.php -f
그리고 그것은 저에게 효과가 있었습니다.
경로에 공백이 있는 경우 케이스가 올바른 경우에도 이 오류가 발생할 수 있습니다.
이 경우 "치명적" 오류가 발생합니다.
git update-index --assume-unchanged code/Solution Files/WebEssentials-Settings-json
수정하려면 경로 주위에 따옴표를 추가하기만 하면 됩니다.
git update-index --assume-unchanged "code/Solution Files/WebEssentials-Settings-json"
문제는 * 와일드카드를 사용하여 명령어를 재귀적이라고 가정하고 시도했지만 그렇지 않았다는 것입니다.
그래서 제가 한 일은
$ git reset HEAD
Unstaged changes after reset:
M .gradle/1.9/taskArtifacts/cache.properties.lock
M .gradle/1.9/taskArtifacts/fileHashes.bin
M .gradle/1.9/taskArtifacts/fileSnapshots.bin
M .gradle/1.9/taskArtifacts/outputFileStates.bin
M .gradle/1.9/taskArtifacts/taskArtifacts.bin
실행 중인
$ git update-index --assume-unchanged .gradle/1.9/taskArtifacts/*
그때 저를 위해 일했고 OP와 제 문제를 야기하지 않았습니다.
그래서 이것을 사용할 때 같은 오류가 발생했습니다.
git update-index --assume-unchanged appsettings.Development.json
그래서 이렇게 바꿨습니다.
git update-index --assume-unchanged appsettings.development.json
처음에는 여러 가지 방법을 시도해 보았지만 결국 이것을 사용하게 되었습니다.그래서 대소문자를 구분하는 것 같습니다.
"web.config"가 체크인되었는지 확인합니다.
그렇지 않으면 이 오류 메시지가 표시됩니다.
이 명령을 사용할 때 자주 발생하는 실수 중 하나는 추적되지 않은 파일이거나 git에 의해 이미 무시된 파일이라고 가정하려고 하는 것입니다.
먼저 파일이 실행되어 추적되는지 확인합니다.
git ls-files | grep relative_path/to/file
파일이 표시되지 않으면 먼저 파일을 추가해야 합니다.
git add relative_path/to/file
파일이 표시되거나 이미 git에 파일을 추가한 경우 git 가정 명령을 정상적으로 실행할 수 있습니다.
git update-index --skip-worktree relative_path/to/file
또는 폴더의 경우
git update-index --skip-worktree relative_path/to/folder/
를 실행하여 파일이 무시되는 것으로 간주되는지 확인할 수 있습니다.
git ls-files -v | grep ^S
S 문자는 건너뛴 파일을 나타냅니다.
누군가에게 유용할 수도 있습니다.나도 같은 문제가 있었고 구문 문제도 없었고, 공백이 있는 이름도 없었고, 경로 문제도 없었으며, git reset 명령도 작동하지 않았습니다.apache www 안에 있는 폴더에서 커밋하다가 apache 서비스가 중지되었습니다.Apache 서비스가 다시 시작되고 오류가 사라졌습니다.
.gitignore에 이미 파일을 커밋하고 밀거나 당기기를 했기 때문에 때때로 이것이 작동하지 않는다는 것을 알게 되었습니다.푸시만 수행하면 되며 파일을 로컬로 수정하는 경우에도 이후 커밋 시 파일을 무시해야 합니다.
실행 후에만 파일 준비--assume-unchanged
그런 다음 파일의 스테이징을 해제합니다.
*.orig 파일을 추적 해제할 때 이 문제가 발생했습니다.
이것이 제가 그들을 추적하기 위해 한 일입니다.
$git reset -- *.orig
그것이 작동하지 않을 경우:
$git clean -fd
미래의 모든 방문객들을 위해.위의 어떤 것도 나의 문제를 해결하지 못했습니다.제가 깨달은 것은.gitignore
파일을 올바른 디렉토리에 배치해야 합니다.내 경우엔, 이사를 한 후에.gitignore
응용 프로그램의 루트 디렉터리에서 문제가 해결되었습니다.
표시할 파일, 특히 파일 경로 및 파일 구분자가 있는지 확인합니다.윈도우즈 시스템과 리눅스 시스템의 파일 구분 기호는 서로 다른 방향으로 배치되어 있습니다.
동일한 문제가 발생했지만, 다른 문제는 작동하지 않았습니다(파일이 추적되었고 Gitignore가 아님).저는 제가 위의 몇 줄의 터미널 출력에서 파일 이름을 복사했다는 것을 깨달았고, 그것이 파일 이름 뒤의 빈 공간을 복사하도록 만들었습니다.공간이 없는 것처럼 보이지만, 마지막에는 공간이 많았습니다.따라서 파일 경로만 복사하고 이중 쿼트로 유지하는 것이 도움이 되었습니다.저도 했어요.git reset HEAD
첫번째.
git update-index --assume-unchanged "app/src/main/java/com/username/projectName/Utils.kt"
제 경우, 저는 그것을 받고 있었습니다.fatal: Unable to mark file
내 gitrepo에 파일을 푸시했기 때문에 gitrepo를 찾을 수 없었기 때문에 오류가 발생했습니다. 먼저 gitrepo에 보관할 템플릿 파일을 커밋하고 푸시한 후 나중에 추적하지 마십시오.
한 번 누르면 이제 명령을 실행할 수 있습니다.git update-index --skip-worktree YOUR_FILE
추적하지 않고 수정합니다.
복사하고 붙여넣기를 하면 이중 대시가 이 "--assume-unchanged" 대신 "assume-unchanged"가 되기 때문입니다.
윈도우의 cygwin에 대해서도 같은 문제가 있었습니다.전체 파일 경로 지정
언급URL : https://stackoverflow.com/questions/12920652/git-update-index-assume-unchanged-returns-fatal-unable-to-mark-file
'programing' 카테고리의 다른 글
중첩된 객체 배열 정렬 (0) | 2023.07.15 |
---|---|
pdb를 종료하고 프로그램을 계속 진행하려면 어떻게 해야 합니까? (0) | 2023.07.15 |
고급 사용자 지정 필드 / 다른 acf 필드를 기준으로 채우기 선택 (0) | 2023.07.15 |
vuetify 데이터 테이블 및 json 개체에서 가져온 바인딩 데이터 (0) | 2023.07.15 |
판다 데이터 프레임에서 NaN으로 셀을 설정하는 방법 (0) | 2023.07.10 |