2010-03-16 6 views
23

다른 리모컨의 다른 .gitignore 파일을 설정하는 간단한 방법이 있습니까? 나는 Heroku와 Github 모두를 밀어 넣을 수있는 저장소를 가지고 있습니다. Heroku에 database.yml이 필요하지만 일부 정보가 Github에 푸시되지 않도록하고 싶습니다. 그래서 각 리모컨마다 다른 .gitignore 파일이 필요합니다.원격 특정 .gitignores를 설정하는 방법이 있습니까?

나는 database.yml을 무시하는 두 개의 별개의 브랜치와 그렇지 않은 브랜치를 가지고있다. 문제는 내가 heroku 브랜치를 체크 아웃하고 github 브랜치로 돌아 가면 전체 database.yml 파일이 사라진다는 것입니다.

팁이 있습니까?

+0

FunkyMunky, 문제에 대한 좋은 해결책을 찾았습니까? –

답변

5

헤로 쿠의 요구 사항에 대해서는 잘 모릅니다. 정의가 올바르다면 문제를 피할 수 있습니다. 당신이 할 수 없다면, 또는 다른 사람이 그것을 찾을 수없는 사람을 찾으면 ...

두 리모컨을 거울 (동일한 커밋)로 만들려면 정의에 따라 해당 커밋에 같은 파일이 있어야합니다 . 그러므로 두 가지 선택이 있습니다 : 필요하지 않더라도 모든 저장소에 file-for-repo-B을 갖거나 두 개의 분기 (masterfor-repo-B)가있는 약간 지저분한 워크 플로를 사용하십시오. 두 가지 분기의 유일한 차이는 file-for-repo-B을 만지는 커밋입니다. 지점 for-repo-B은 항상 master에서 병합됩니다 (단, 다른 방법은 없습니다!). 이제는 다른 지점을 가지고 B 지점에서 체크 아웃 했으니 모두 좋았습니다.

10

database.yml에 데이터베이스 정보를 넣지 마십시오. 대신, Heroku 환경 변수를 사용하십시오.

+0

이 규칙은 heroku뿐 아니라 다른 모든 프로덕션 환경에도 적용됩니다. –

1

당신은을 versionned해야

그것에 만 변수
  • database.yml
  • database.yml가 배포 원격 서버에 따라 적절한 값으로 그 변수를 대체 할 수있는 스크립트를.

그런 다음 당신이 smudge attribute filter driver로 스크립트를 사용

smudge content filter

당신이 체크 아웃 (와 작업 트리 만들기) 원격 서버를 할 때마다, 스크립트가 실행되고 변경됩니다 그에 따라 변수는 사용자 정의 database.yml 파일을 제공합니다.
원격 중 하나에 database.yml 파일이 필요하지 않은 경우에도 여전히있을 수 있지만 스 머지 스크립트에 의해 비워집니다.