Git 리포지토리에서 이전에 무시 된 파일 무시 해제 문제
/sites/default/files/
사용자 콘텐츠가 일반적으로 보관 되는 디렉터리 가있는 사이트가 있습니다 . 이 항목을 추적 할 필요가 없음을 확인하고 .gitignore 파일에 / sites / default / files /를 추가했습니다.
그런 다음 해당 디렉토리에도 대부분 영구적 인 업로드를 유지하고 싶었습니다. 이제는 / sites / default / files /의 모든 것을 추적하고 원하지 않는 하위 디렉터리를 제외하는 것이 더 합리적입니다.
문제는 Git이 해당 디렉토리를 무시하는 것을 멈추지 않는다는 것입니다. 이 디렉토리를 지정하는 .gitignore에서 줄을 제거했으며 추적하지 않습니다. git add /sites/default/files/ -f
git이 디렉토리를 추적하도록 강제하는 데 사용할 수 있는 옵션이 있지만 이전에 해본 적이 있고 지저분한 것 같습니다.
.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 파일이 있다는 것입니다.
'Program Tip' 카테고리의 다른 글
Clojure 웹 프레임 워크 비교 (0) | 2020.11.18 |
---|---|
선택 상자에서 텍스트를 세로로 정렬하고 싶습니다. (0) | 2020.11.18 |
Subversion에서 특정 사용자가 변경 한 모든 파일 나열 (0) | 2020.11.18 |
콘솔에 wchar_t 값을 어떻게 인쇄 할 수 있습니까? (0) | 2020.11.18 |
If-less 프로그래밍 (기본적으로 조건부 없음) (0) | 2020.11.18 |