2011-10-03 3 views
3

github에 푸시하는 데 사용하는 config/dbconfig.js라는 파일을 제외하고 싶지만 master에서 noester.com git repo로 푸시 할 수는 있습니다. 생산에.Git Config는 브랜치 용 파일을 제외합니다.

[core] 
    repositoryformatversion = 0 
    filemode = true 
    bare = false 
    logallrefupdates = true 
    excludesfile = +info/exclude 
[remote "nodester"] 
    url = *** My Git Repo *** 
    fetch = +refs/heads/*:refs/remotes/nodester/* 
[branch "public"] 
    excludesfile = +info/exclude_public 

나는 .gitignore 파일을 제거해야했다 및 I /을 일반 제외에 대한 파일을 제외 /를 .git/정보를 사용하고하고 .git를 사용하는 기대했다 : 나는이에 설정 파일을 변경 info/exclude_public을 사용하여 하나의 파일을 제외 시키십시오. 공용으로 병합 할 때 파일이 병합되지 않고 github에 푸시되지 않습니다.

내가 다음과 같이해도 공용 브랜치에있는 파일을 git에 추가합니다. 그래서 나는 에테르가 잘못되었거나 불가능하다고 생각하고 있습니다.

$ git checkout public 
$ git add . 
$ git status 
# On branch public 
# Changes to be committed: 
# (use "git reset HEAD <file>..." to unstage) 
# 
# new file: config/dbconfig.json 
# 

이 두 자식 저장소를 실행하지 않고 오픈 Github의 프로젝트에 나가서 수동으로 그들 사이에 병합하지 않으려는 데이터베이스 CONFIGS 처리하는 더 좋은 방법이 할 수없는 경우?

답변

2

구성 파일의 경우 특정 분기의 파일을 무시하는 것보다 콘텐츠 필터 드라이버을 사용하는 것이 가장 좋습니다.

content filters

당신 것 :

  • 저장 설정 파일 템플릿
  • 저장 공공 값은
  • 콘텐츠 필터 'smudge'스크립트 템플릿에서 목표 설정 파일을 구축하자
    ... 해당 스크립트가 전개 환경에 있음을 감지 할 경우를 제외하고는 다른 소스의 값을 사용합니다 해당 서버합니다 (REPO에 저장되지 공공 값)

그림를 참조하십시오 :

+0

가 좋아 나는 거 같아요 .gitattributes에서 이와 같이 뭔가? config/dbconfig.json merge = ours – JTWebMan

+0

@JTWebMan : 병합 드라이버도 작동 할 수 있지만 필터 드라이버를 사용할 때의 이점은 repo 외부의 값을 사용하는 것입니다. – VonC

+0

그래서 내 컴퓨터에서? 당신이 말하는 것을 얻은 것 같아요. 내가 변경 사항을 적용 할 때 어떤 지사를보고 repo에없는 파일의 값을 대체 할 것입니다. 합병을 위해서도 효과가 있습니까? – JTWebMan

관련 문제