2010-03-05 7 views
3

나는 오픈 소스 웹 사이트를 운영하고 있습니다. 일부 콘텐츠는 연결 매개 변수와 같은 "비공개"이며 오픈 소스 버전에는 필요하지 않은 파일 (예 : 광고 템플릿)입니다.개인 및 공용 저장소를 처리하는 기술은 무엇입니까?

  • 오픈 소스 버전 (등 관련 포럼 및 위해 광고, Google 웹 로그 분석 계정 링크) 고유 ID를 가진 공개 사이트 :

    는 기본적으로 나는 두 가지 버전을 유지하기 위해 노력하고있어 지역 사회의 불필요한 의존성이없는 개발, 또는 현재 나는 "개인"내용을 방지하기 위해 .gitignore 파일을 사용하고

브랜딩을위한 오픈 소스 reposito에 푸시한다 너. 로컬에서 찾을 수있는 템플릿을 포함하는 도우미와 함께하지만 오픈 소스 버전의 빈 상자를 보여줍니다.

기능 분기 간의 체크 아웃을 시도 할 때까지 제대로 작동합니다. 분기 설정 파일에 새 키가 필요할 수 있습니다. 설정 파일은 Git에 의해 무시되므로 (패스워드를 누설하는 것을 피하기 위해), 사이트는 끊어집니다.

이상적으로 저는 제어 설정 파일을 버전화하고 싶지만 Git이 원격 서버 (Github)에 이러한 파일을 밀어 넣지 않도록 할 수 있습니다. 그게 가능하니?

지점을 사용하여 다른 웹 사이트 버전을 대신 관리해야합니까?

답변

2

당신과 git submodules 사용해야 밀어 수있는 모든 대중 내용에 대한

  • 하나의 모듈은,/마음대로 뽑아
  • 민간 내용
  • 한 슈퍼 프로젝트에 대한 하나 개의 모듈 또한 공개 및 비공개 서브 모듈 모두를 참조하는 개인 저장소에 있습니다.

특히 한 민감한 정보를 다루는 경우 하나의 저장소 내의 지점은 대답이 아닙니다.

+0

고마워요. 내가해야 할 일처럼 들리지만 여전히 힘내 미숙하고 머리에 이상하게 들립니다. 선택한 파일을 원격지로 복사하거나 git push를 단순히 차단하는 방법이 있다고 생각하십니까? 내 응용 프로그램은 다른 모드에서 실행되기 때문에 오픈 소스 버전의 기존 파일을 쉽게 무시할 수 있습니다. 예를 들어 ". *"파일을 푸시하지 않는 것이 가장 쉬운 옵션입니다. (오픈 소스 .git 폴더는 존재하지 않는 파일에 대한 히스토리를 가지고 있기 때문에 이해가되지 않을 것입니다. :() –

+1

@faB : 로컬 또는 대상 repo 측에서 후크를 밀어 낼 수 없습니다 (일부'git -receive-pack '을 참조하십시오. http://benjamin-meyer.blogspot.com/2008/10/git-hooks.html 참조), 후크가 다른 원격지를 통한 푸시/풀 작업과 공유하지 않기 때문에 repo (http://stackoverflow.com/questions/1717278/git-hooks-and-how-they-work 참고), 나는 항상 repo에서해야하는 모든 추가 설정 때문에 그들을 사용하기를 꺼려합니다. 하위 모듈은 제어가 더 쉽기 때문에 나는 그 해결책을 선호한다. – VonC

0

브랜치 (제안한대로)가 가장 직접적인 방법 일 것입니다. 사실 이것은 여러 프로젝트/버전을 서로 분리하기위한 것입니다.

관련 문제