Program Tip

Git 리포지토리에서 이전에 무시 된 파일 무시 해제 문제

programtip 2020. 11. 18. 09:39
반응형

Git 리포지토리에서 이전에 무시 된 파일 무시 해제 문제


/sites/default/files/사용자 콘텐츠가 일반적으로 보관 되는 디렉터리 가있는 사이트가 있습니다 . 이 항목을 추적 할 필요가 없음을 확인하고 .gitignore 파일에 / sites / default / files /를 추가했습니다.

그런 다음 해당 디렉토리에도 대부분 영구적 인 업로드를 유지하고 싶었습니다. 이제는 / sites / default / files /의 모든 것을 추적하고 원하지 않는 하위 디렉터리를 제외하는 것이 더 합리적입니다.

문제는 Git이 해당 디렉토리를 무시하는 것을 멈추지 않는다는 것입니다. 이 디렉토리를 지정하는 .gitignore에서 줄을 제거했으며 추적하지 않습니다. git add /sites/default/files/ -fgit이 디렉토리를 추적하도록 강제하는 데 사용할 있는 옵션이 있지만 이전에 해본 적이 있고 지저분한 것 같습니다.

.gitignore가 더 이상 해당 디렉토리를 무시 된 것으로 지정하지 않으면 Git이 해당 파일 추적을 시작하도록 강제해야하는 이유는 무엇입니까?


당신은 이미 그것을하는 방법을 알고 있습니다. 네, git add -f방법입니다.

이유를 묻는다면 ... 이것은 git이 assume-unchanged내부적 으로 약간 설정했기 때문 입니다. 이 비트는 git이 파일이 수정되지 않았다고 생각하게하므로 git add추가하지 않습니다.

구현 세부 사항을 엉망으로 만들고 싶다면 git update-index --no-assume-unchanged <file>명령 을 사용할 수 있습니다 .


J-16이 맞지 않다고 생각합니다. 에서 http://www.kernel.org/pub/software/scm/git/docs/git-add.html :

git add 명령은 기본적으로 무시 된 파일을 추가하지 않습니다. 무시 된 파일이 명령 줄에 명시 적으로 지정된 경우 무시 된 파일 목록과 함께 git add가 실패합니다. 디렉토리 재귀 또는 Git이 수행 한 파일 이름 globbing에 의해 도달 한 무시 된 파일 (셸 앞에 glob 인용)은 자동으로 무시됩니다. git add 명령은 -f (force) 옵션으로 무시 된 파일을 추가하는 데 사용할 수 있습니다.

git add -f단지 파일을 추가하는 것 같다 않는 파일 어딘가에을 무시 존재합니다.

/ sites 또는 / sites / default에 다른 .gitignore 파일이 있는데,이 파일은 Git에게이 dir을 무시하도록 지시하거나 .git / info / exclude에 설정되었을 수 있습니다.


후손을 위해 : 내 문제에 대한 대답은 "그냥 자세히보세요"였습니다.

@twalberg는 .gitignore 파일에서 내가 간과했던 규칙이있을 수 있다고 정확하게 지적했습니다. .gitignore 규칙이 적용되는 계단식 방식을 사용하면 의도 한 것보다 더 광범위하게 파일을 쉽게 제외 할 수 있습니다.

내가 말할 수있는 한, 내가 git이 어떻게 작동하는지에 대한 가정은 옳았다. 마찬가지로, 제 경우는 assume-unchanged비트가 어떤 역할을 할 수 있는지에 대한 @ J-16 SDiZ의 의견을지지 (또는 반증)하지 않는 것 같습니다 .


Drupal 사이트 디렉토리에서 매우 유사한 문제가 발생했습니다. 문제는 Drupal 배포판 에 drupal / sites / files / *의 모든 항목과 일치하는 상위 수준의 drupal 디렉토리에 .gitignore 파일이 있다는 것입니다.

참고 URL : https://stackoverflow.com/questions/11126292/trouble-un-ignoring-previously-ignored-files-in-git-repo

반응형