힘내

2013-11-27 2 views
0

내가 때라도 폴더 구조를 가지고 있다고 가정하자 역사 (커밋) 또는 준비 파일을 추가하지 않고 dev에 구성에 병합 :힘내

My Project 
    | - <project files> 
    | - <project configuration files> 

모든 개발자가 다른 프로젝트 구성을 가지고 있으며, 별도의 지점에이 파일을 저장하려고 .

그것은이다 후 가능이 수행하여 작업중인 지점에 이러한 구성을 추가

# Get the configurations 
git checkout jakesConfigurationFileBranch -- <project configuration files> 

# Don't stage these files for commit 
git reset -- <project configuration files> 

우리는 우리의 프로젝트 건너 흩어져있는 구성 파일을 가지고 있기 때문에 Unfortionatly이 워크 플로는 잘 작동하지 않습니다 (우리의 프로젝트 설정을 파일, 편집기 환경 설정 등). IE :

My Project 
    | - <project files with configuration files sprinkled throughout> 

역사가 변경되거나 파일을 준비하지 않고 분기를 병합하는 것이 정말로 좋겠습니까? 명령을 실행하기 전에

git merge --files-Only jakesConfigurationFileBranch 


트리는 다음과 같이 싶습니다 :
  master 
     /
*---*---* 
\ 
    *--* - jakesConfigurationFiles 

그리고 나무 후

가 동일하게 보일 것이다라는 플래그는

  master 
     /
*---*---* 
\ 
    *--* - jakesConfigurationFiles 

있다 - -no-commit on merge (병합하지 않음). 그러나 병합을 빨리 수행하므로 항상 작동하지는 않습니다 (포인터가 이동하는 것을 차단하지 않습니다).

답변

0

작동합니다

git merge --no-ff --no-commit devEnv-Jake 

함께 그것을 따르

git reset 

가 준비 영역에서 파일을 지 웁니다.


는 사실이 할 수있는 별칭 생성 :

당신을 위해 작동 할 수
alias jake-mergeDevEnv-git='git merge --no-ff --no-commit devEnv-Jake ; git reset' 
0

내 일반적인 권장 사항은 대부분의 개발자에게 적합한 "dev"구성 파일을 유지 한 다음 버전 제어가 아닌 개발자 별 구성 파일을 사용하여 무시하거나 환경 변수를 사용하는 것입니다. 이렇게

+0

파일이 몇 개 밖에없고 수동으로 덮어 쓰지 않거나 위 스크립트를 덮어 쓰는 것에 신경 쓰지 않는다면 작동합니다. 그러나 위의 더 나은 해결책을 찾은 것 같습니다. – sixtyfootersdude

0

한 가지에서 추적되지 지역화 CONFIGS를 구성하는 게시물 - 체크 아웃 후크에서 간단한 스크립트입니다 (추적 또는 비 추적) the hook's simple, 각 추적 된 [email protected] 파일에 대해 체크 아웃 할 때 분기 별 컨텐츠를 포함하여 파일 fixmeup을 빌드합니다. merge-from-repo 효과를 얻으려면 cat이 아닌 git show을 수정하는 것이 쉽습니다.

또 다른 방법은 필터를 사용하여 콘텐츠를 수정하는 것입니다. 필터 속성이 표시된 파일은 선택한 명령을 실행하여 결제시 임의의 방식으로 콘텐츠를 수정하고 추가하는 방식입니다. VonC has a good explanation linked to further good explanations for this.