이미 체크인 한 디렉토리의 내용을 무시 하시겠습니까?
여러 프로젝트에서 사용되는 그래픽 및 사운드 파일을 보유하는 데만 사용되는 git 저장소가 있습니다. 서브 디렉토리가없는 하나의 디렉토리에 있습니다. 이제 방금 여러 레벨의 하위 디렉토리가있는 구조화 된 다른 디렉토리에서 이러한 자산을 복사하는 스크립트를 작성했습니다.
이제 (소스) 계층 파일 구조 만 git에 의해 추적되기를 원하고 (대상) 플랫 디렉토리 (한 파일에 모든 파일이있는)는 무시해야합니다.
대상 디렉토리를 .gitignore에 추가했지만 git은 여전히 변경 사항을 추적합니다. 대상 디렉토리에서 이전 파일의 삭제를 커밋하면 git이 새 내용 추적을 중지 할 수 있지만 (스크립트에서 복사 함) 그렇지 않습니다.
대상 디렉토리를 잊어 버리는 방법은 무엇입니까?
이 명령은 git이 디렉토리와 그 아래의 모든 파일을 실제로 삭제하지 않고 추적을 해제하도록합니다.
git rm -r --cached <your directory>
이 -r
옵션을 사용하면 디렉토리 아래의 모든 파일이 제거됩니다.
이 --cached
옵션을 사용하면 파일이 작업 복사본이 아닌 git의 인덱스에서만 제거됩니다. 기본적으로 git rm <file>
삭제 <file>
합니다.
추적 된 파일 (체크인)이 필요하지만 파일을 로컬 저장소 및 원격 저장소에 유지하면서 파일의 추가 변경 사항을 추적하지 않으려면 다음을 수행하십시오.
git update-index --assume-unchanged path/to/file.txt
그 후에는이 파일에 대한 변경 사항이 더 이상에 표시되지 않습니다 git status
.
blah/
git에 added 라는 하위 디렉토리 의 경우 다음 두 가지 모두의 새 파일을 무시하는 것으로 보입니다 blah/
. .gitignore에 추가됨 :
blah
blah/*
이것이 나쁜 사람인지 아닌지 잘 모르겠지만 여기에 있습니다.
*Generated*
루트 .gitignore 파일에 추가 했습니다.- GeneratedFile.Whatever.ext로 유지하려는 파일을 제출했습니다. 체크인
- 체크 아웃 후 git hook을 만들어서 powershell 스크립트를 호출 하여이 작업을 수행했습니다.
dir *.CheckedIn -Recurse | %{ copy $_.FullName "$($_.FullName)".Replace("CheckedIn","") -EA SilentlyContinue}
나는 나 자신에 대해 조금 나쁘게 생각하지만 실제로는 효과가 있습니다.
좋아, 먼저 디렉토리가 완전히 비어있는 상태에서 체크인해야하며 (이전 파일이나 새 파일이 아닌) 이후에 추가 된 파일은 무시됩니다. 커밋하기 전에 이전 파일 추가 및 새 파일을 제거하면 새 파일은 무시해도 리포지토리에 추가됩니다.
적어도 이것은이 상황에서 나를 위해 일했습니다. 누군가 무슨 일이 일어나고 있는지 더 많은 통찰력을 제공 할 수 있다면 여전히 좋을 것입니다.
참고 URL : https://stackoverflow.com/questions/1329291/ignoring-an-already-checked-in-directorys-contents
'IT story' 카테고리의 다른 글
경고 :이 AsyncTask 클래스는 정적이거나 누수가 발생할 수 있습니다. (0) | 2020.04.23 |
---|---|
Visual Studio 2012에서 내 테스트를 찾지 못하는 이유는 무엇입니까? (0) | 2020.04.23 |
Guid는 모두 0입니까? (0) | 2020.04.23 |
S3 정적 웹 사이트 호스팅 Index.html에 모든 경로 라우팅 (0) | 2020.04.23 |
.svn 디렉토리를 무시하기 위해`find`를 어떻게 얻을 수 있습니까? (0) | 2020.04.23 |