Git:병합은 공공 및 개인 분 동안 유지하면서 특정한 파일에 그대로 두 분기

StackOverflow https://stackoverflow.com/questions/1807036

  •  05-07-2019
  •  | 
  •  

문제

를 읽었어요 몇 가지 git 질문에 여기에,그러나 찾을 수 없습니다 이것을 하나:

나는 공공 및 개인 가지고 싶은 곳에 허용하는 특정 파일을 발산.

사람들은 구성 파일과 암호를 로컬 사용자 지정할 수도 있습니다.

내가 할 수 있고 싶을 병합하는 지점이 모두 방법:에서 개인 공개하고 다시 있지만,나는 원하지 않제를 포함한 모든 장치에 사람들은 특정 파일을 병합된 자동으로 합니다.

는 방법이 있을 설정하 git 이 방법은?나는 사랑을 찾는 자동화 해결책:)-그래서 그 병합을 할 수 있습니다.


편집: 여기에는 솔루션을 나를 위해 일했다(감사 VonC 에 대한 조언에 gitattribute)

만 예기치 않은 일이었다"병합 protection"작업을 시작한 후에만 파일에 있는 분기에 두 가지가 아닌 즉시 후 다음과 같은 구성에 적용

.gitattributes(트랙 git 를 공유하려는 경우이)또는.git/정보/특성:

file1      merge=keepmine
path/file2     merge=keepmine

keepmine 정된 사용자 지정 병합 관리자는 그렇게 아무것도 명령이라고 대신에 내부 병합에서 드라이버 선택한 파일 설정은 아래

병합할 때에 개인 공사 일반적으로 수행 git merge --squash private.는 방법을 편집하는 개인을 얻지 않을 것으로 자식에서 역사 공니다.

.git/config:

#public repository
[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = <public repo git url> 

#private repository
#has to set up with git init and populated with the initial commit to branch mybranch
[remote "private"]
    push = +:
    url = /path/to/local/private/repo 
[merge "keepmine"]
    name = dont_merge_selected_files
    driver = echo %O %A %B 
[branch "master"]
    remote = origin
    merge = refs/heads/master 

#private branch settings
[branch "mybranch"]
    remote = private
    merge = refs/heads/mybranch

는 경우가 있을 향상시키는 방법 이기

도움이 되었습니까?

해결책

안전 측면,추가할 수 있습니다 git attribute (참조하십시오 여기에 대한 예)사람들을 위해 프라이빗 파일이 있습니다.

는 방법을 정의할 수 있습니다 script("병합 manager")도록 파일을 포함한 개인 정보를 유지됩니다 빈(또는 공 콘텐츠)는 경우에는 병합 대중에 지점을 유지하면서 로컬 콘텐츠를 병합하는 경우 민간 지점에 있습니다.
그것은할 수 있음을 의미합 병합/용에 대해 생각하지 않는 파일입니다.

다른 팁

방법 중 하나를 이용하는 것입 git rebase.을 유지하여 귀하의 개인 변화로는 몇 가지 커밋의 끝 h master, 할 수 있습 commit 공공 재료 master 지점(또는 어떤 당신은 선택의 일점을 것),다음 리베이스의 개인 분기에 당신이 원하는 때마다 업데이트하고 있습니다.

를 처리하는 다른 방법이 유지하는 템플릿 구성 파일에서 Git 등 frobozz.config.template.에서 작업 디렉토리에 복사 frobozz.config.template 하(버전 없) frobozz.config 고 수정할 수 있습니다.단지에 백업하십시오 당신의 작업 디렉터리는 경우에 당신은 너무 필요가 지역의 변화하는 백업을 수행합니다.

이만 작동하는 것으로 나타납이 있을 경우 병합 충돌을 검출합니다.병합 사이에 앞뒤로 가지의 파일은 덮어.지 않는 한 나는 뭔가 잘못입니다.물론 이것에서 윈도우에서 msysgit git 버전 1.6.5.1.1367.

비밀을 유지하 버전 관리가 최악의 아이디어이다.당신이 필요 CVS,지 git,작동하는 별도의 파일이 있습니다.Git 다른 많은 현대적인 DVC 작업 전체 트리지 않는 별도의 파일이 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top