2009-08-18 2 views
32

Git을 사용하여 문서 라텍스 소스를 추적하고 있습니다. 마스터 브랜치를 최종 사용자에게 적합한 문서들로 가득 채우고 싶습니다. 그래서 누군가가 뭔가를 필요로 할 때, 나는 master 브랜치로 전환하고, 문서를 컴파일하고 나누어 줄 수 있습니다.힘내 : master와 병합하여 master 파일을 자동으로 덮어 쓰도록 선택

매뉴얼에 주요 업데이트가 필요한 경우 새 분기를 만듭니다. 그러나 매뉴얼이 승인되면 마스터로 병합되어야합니다. 마스터에 지점에서 병합 할 때, 나는 말을 힘내 몇 가지 명령을 전달하고자 "단지 마스터에있는 파일을 덮어 지점에서 파일을 사용하여 병합을 잊어 버려." 이것을 할 수있는 방법이 있습니까? 특히, 매번 병합 도구를 열지 않도록하고 싶습니다. 미리 감사드립니다. 당신이있을 때 master을 무시하려면

+0

대화 형 병합을 수행하고 숟가락으로 무엇을 할 때 묻는 지 묻습니다. 대답은 무엇이든간에 (예 : 'yes'로) 피드 할 수 있습니다. –

+1

@ r-martinho-fernandes : 대화 형 병합 명령은 무엇입니까? –

답변

46

, branch은 체크 아웃 : '컴퓨터 언어 학자가'여기에 댓글을 달았습니다

git merge master --strategy=ours 

http://schacon.github.com/git/git-merge.html

,이는 " '마스터'에서 모든 것을 무시하고,이 경우에도 새 독립 파일로 변경 "합니다. 따라서 OP가 아니며 OP가 "병합을 잊어 버리십시오"라고 말한 것처럼 더 안전한 병합을 원할 경우 'Computer Linguist'의 우수한 안전 명령을 사용하고 자신의 의견을 더하여 신용을 얻습니다.

git checkout branch 
git merge -s ours master 

을하지만이 정확하게 당신이 원하는 일을하지 않습니다 :

git merge -s recursive -X theirs branch 
+1

여기에서 : http://stackoverflow.com/questions/366860/when-would-you-use-the-different-git-merge-strategies, 이것은 말한다 : 우리는 == 나는 다른 머리를 잡아 당기고 싶지만 던짐 머리가 가져 오는 모든 변화를 버려라. OP가 원하는 것과 반대입니다. – Amala

+4

브랜치에 있고'git merge master --strategy = ours' 인 경우 브랜치의 변경 사항을 유지합니다. (OP가 원하는 것) 그러나 당신이 마스터에 있고 "우리"를 사용하면 마스터의 것을 유지합니다. (반대편) – Robert

+4

위의 내용을 읽은 Mica는 브랜치의 상태를 마스터에 머지하려고합니다. 즉, 마스터에 git merge branch를 저장하려고합니다. --strategy = ours는 원하는 것과 반대입니다. –

1

나는 당신이 '우리'병합 전략이 작업을 수행 할 수 있다고는 현재 작업 지점의 내용을 오버라이드 (override) branch 그리고 원하는 것은 master에 같은 내용을 가져 오는 것입니다. 당신이 정말로 원하는 것은 합병 전략 theirs이며,이를 위해 this similar question에서 당신을 가리키고 있습니다. 실제로 그것은 무엇을 의미합니까 을 가리 키도록 master을 다시 설정하는 것입니다.

13

Git 버전 1.7.1에서는 "-Xtheirs"를 사용하여 지점 자체에서 병합 할 수 있습니다. 예를 들어

, 당신이 master 브랜치에서 시작하는 경우, 마스터에

git checkout -b editBranch
-- edit your files --
git add .
git commit -m "Updated the files"
git checkout master
git merge -Xtheirs editBranch

나는이 기반으로 this post 하드 오프 재설정 editBranch을하는 것입니다 할 본 적이 또 다른 방법은 시작 . 예를 들어 :

git checkout -b editBranch
-- edit your files --
git add .
git commit -m "Updated the files"
git checkout master
git reset --hard editBranch

나는이 두 번째 방법은 더 나은 플레이 것 같아요,하지만 난 아직 충분히 함께 놀 수있는 기회가 없었어요.

+0

감사합니다. 나는 집에서 자식을 업데이트하고 이것을 체크해야 할 것이다. 매우 감사. – Mica