2013-07-19 2 views
2

우리 프로젝트에는 2 개의 주요 지부가 있습니다. 첫 번째는 안정적이고 (현재 성공적인 빌드) 두 번째는 불안정합니다 (실험). 저는 불안정한 곳에서부터 분기하여 기능성을 연구하기 시작했습니다. 지금은 안정적인 최신 업데이트를 받아야합니다.Git 스위치 기본 브랜치

git rebase origin/stable이 안정적인 최신 변경 사항을 적용 할 수 있는지 알고 싶습니다.

+0

이 게시물을 확인하십시오 : http://stackoverflow.com/questions/1683531/how-to-import-existing-git-repository-into-another –

답변

0

예, 안정적인 분기에서 커밋 된 커밋 중 커밋되지 않은 변경 사항을 병합하지 않아도된다면 절대적으로 가능합니다.

일반적으로 안정성이 떨어지는 분기에서 약간의 변경을 수행 한 경우, 특히 안정 분기에 대한 변경 사항과 다른 파일에있는 경우에는 리베이스가 매우 간단합니다. 나는 그것을 좋아한다. 이제 많은 변경 사항이 있고 두 분기가 동일한 파일을 변경하면 git merge을 사용하는 것이 더 나을 수 있습니다. 또한 그러한 일에 관심이 있다면 git rebase은 내역을 변경하지만 git merge은 변경하지 않습니다.

+0

불안정한 지점에서 지점을 만들었으니 이제 안정적으로 병합하고 싶습니다. 이 경우에는 git merge가 좋은 아이디어가되기를 바랍니다. – user12222

+0

'git merge '는 실제로 좋은 생각 일지 모르지만'git rebase'가 실행 가능한지 물어 보았습니다. 그것은 당신의 상황과 당신이 원하는 것에 따라 실행 가능한 옵션입니다. – patrickvacek

0

rebase 할 수 있지만, 병합을 권장합니다. 그 과정은 개인 분기에 커밋을하지 않은 한 더 간단하고 역사가 will not be a lie입니다.

** 편집 : 그냥 실현 : 아니요 리베이스 수없는, 즉 unstable에 커밋을 복제하고 나중에 unstable 또는 stable와 함께 작업을 병합하면 끔찍한 혼란을 야기하기 때문이다.

+0

고맙게도'git rebase'는 그보다 더 똑똑합니다. 커밋이 복제되고 두 번째로 적용되면 아무 일도하지 않기 때문에 그냥 건너 뜁니다. – patrickvacek

+0

아니요, 그건 사실이 아닙니다. 그가'stable'의 최상위에서 움직이는 커밋은 거기에 속해 있지 않기 때문에, 그 rebase 동안 충돌을 해결해야 할 것입니다. 패치 아이디와 함께 작동하기 때문에'git rebase' 중복 탐지가 깨질 것입니다. 그러나 브랜치는 다시 리베이스되지 않을 것이지만, 일단 작업이 완료되면 병합 된 다음 어쨌든 중복 커밋을 보장한다고 가정 할 수 있기 때문에 관련성이 없습니다. – Chronial

0

git fetch then git merge이 방법입니다. 자신이 다른 지점에 있기 때문에 git pull을 수행 한 다음 git merge을 수행 할 수 있습니다. 이것은 여러분의 브랜치가 안정적으로 병합 될 수 있도록합니다 (충돌을 해결 한 후에).

이렇게하려면 git checkout stable 다음 git merge unstable 그리고 행복 할 때 git push origin stable.

rebase 변경 사항을 적용하기 전에 특정 시점부터 코드를 병합하는 것과 같이 코드를 병합하는 것과 같은 멋진 작업을 수행 할 수 있으며 한 번에 하나의 커밋이 추가됩니다. 이는 깨끗하게하고 싶은 패치로 코드를 다시 가져 오려는 경우 원격 작업 (기본 저장소에 액세스 할 수 없음)에 편리합니다. 귀하의 경우에 나는 귀하의 지점에 fetchmerge이 당신이 원하는 것이라고 생각합니다. 그런 다음 당신이 행복 할 때 안정적으로 다시 합칠 수 있습니다.