git : 각 원격에 대해 다른 .gitignore 파일이 있습니다.
특정 파일 (클라우드 컴퓨팅 플랫폼에 배포하기 위해 컴파일 된 파일)을 커밋하려는 원격 저장소가 있지만 github에 배포하고 싶지 않습니다.
각 원격에 대해 하나씩 다른 .gitignore 파일을 가질 수있는 방법이 있습니까?
이것은 git의 모델에서 실제로 의미가 없습니다. 커밋에는 파일 세트가 포함됩니다. 모든 .gitignore 파일은 특정 패턴과 일치하는 파일을 자동으로 추가하지 않도록 UI에 지시합니다. 이것이 사실상 의미하는 바는 거의 동일하지만 파일의 하위 집합 만 포함하는 병렬 커밋 집합을 갖는 것입니다.
마스터에서 분리되고 동일하지만 추가로 컴파일 된 파일을 포함하는 "배포"분기가있는 분기 체계를 사용하여이 작업을 수행 할 수 있습니다. 파일을 자동으로 컴파일하고 저장소에 추가하기 위해 git 후크로 자동화 할 수도 있습니다. 다음과 같은 구조를 구상하고 있습니다.
master: A ---> B ---> C ---> D
\ \ \ \
\ \ \ \
deployment: -> A' -> B' -> C' -> D'
즉, 특정 서버가 마스터에서 새 커밋을받을 때마다 프로젝트를 빌드하고 빌드 된 파일을 D의 새 커밋에 추가 한 다음 배포 브랜치에 커밋합니다. 그런 다음 github에 푸시 할 필요가 없습니다.
나는 이것을하는 방법을 알아 냈다.
제 경우에는 프로젝트를 heroku 및 github (공용 저장소)와 동기화해야했습니다.
그러나 개인 정보가있는 일부 파일은 공용 저장소에서 공유하는 것이 흥미롭지 않았습니다.
일반적으로 간단한 프로젝트는 다음과 같은 폴더 구조를 갖습니다.
Project folder (remote heroku)
- .git
- .gitignore
- (folders and files)
내가 한 일은 한 단계 더 추가하고 프로젝트에서 일부 파일을 생략하는 gitignore를 사용하여 다른 git 저장소를 만드는 것입니다.
Project public (remote github)
- .git
- .gitignore
- Project folder (remote heroku)
- .git
- .gitignore
- (folders and files)
따라서 이것은 gitignore가 다른 두 개의 원격 저장소가있는 git 저장소가 아닙니다.
두 개의 다른 저장소가 있습니다.
가장 안쪽에서는 IDE에서 생성 된 파일과 런타임에 생성 된 일부 파일 만 제외합니다.
가장 바깥 쪽 수준에서는 공개 할 수없는 모든 파일을 제외합니다.
또 다른 옵션은 git submodules 입니다.
예를 들어 코드와 문서가 독립적 인 액세스 제어 등을 사용하는 두 개의 다른 저장소에 있도록하려는 경우 유용 할 수 있습니다. 따라서 총 3 개의 저장소, 문서 용 하위 모듈 저장소, 코드 용 하위 모듈 저장소, " master "(git 하위 모듈 아님) 저장소에 둘 다 포함되어 있습니다 (아마도 pypi 업로드 용). 이것은 CS 교과서 프로젝트를 구성하는 적절한 방법입니다. 두 프로젝트 모두 독립적으로 진행할 수 있으며 마스터 리포지토리 관리자가 주도하는 주요 릴리스에서 동기화 할 수 있습니다.
여기에 언급 된 방법 에 대한 자동화 된 솔루션 :
- 다르게 전송하려는 하위 폴더를 무시하도록 루트 .git 설정
- 하위 폴더 내에서 새 git을 초기화하고 원격 구성을 할당합니다.
- 들어오는 인수를 기반으로 해당 하위 폴더에서 git push를 실행하도록 루트 폴더의 .git / hooks / pre-push 파일을 수정합니다.
참고 URL : https://stackoverflow.com/questions/10475273/git-have-different-gitignore-file-for-each-remote
'IT Share you' 카테고리의 다른 글
기본 스타일을 기반으로 스타일을 만드는 방법은 무엇입니까? (0) | 2020.11.18 |
---|---|
인텔 컴파일러를 사용하는 Windows와 Linux의 성능 차이 : 어셈블리 살펴보기 (0) | 2020.11.18 |
오류가있을 때 LaTeX 컴파일을 수동으로 중단하지 마십시오. (0) | 2020.11.18 |
ASP.NET MVC를위한 최상의 리포지토리 패턴 (0) | 2020.11.18 |
람다에서 상속한다는 것은 무엇을 의미합니까? (0) | 2020.11.18 |