2017-03-16 4 views
0

버전 관리에 git을 사용하기 시작했으며 다음과 같은 시나리오가 있습니다.상위 분기의 변경 사항을 다시 병합

나는 지점이 4000-base입니다. 이 지점에서 분기했습니다.

git checkout 4000-base 
git checkout -n 4001-feature-1 

이제이 지점을 로컬로 작업하고 있습니다. 한편, 상위 분기가 업데이트되었습니다. 부모 브랜치의 최신 변경 사항을 로컬에서 내 4001-feature-1 브랜치에 병합 한 다음 브랜치를 서버에 푸시하여 모든 사용자가 사용할 수있게하고 싶습니다.

git에서 이것을 수행하는 가장 좋은 방법은 무엇입니까?

+0

분기에 상위 분기를 병합 (그리고 나서 '밀어 넣기')해야합니다. – crashmstr

+0

이것은 git의 가장 기본적인 개념입니다. 자습서를 읽으려고 한 적이 있습니까? – Dunno

+0

[Git Book] (https://git-scm.com/book/en/v2)을 읽고 싶을 수도 있습니다. 기본으로 시작하여 고급 주제로 넘어갑니다. – crashmstr

답변

1

당신이 찾고있는 것입니다.

자식-REBASE은 - 다시 적용은

당신은 4001-feature-1 분기를 분기하는 변경 사항을 커밋해야 할 또 다른 기본 팁의 상부에 커밋합니다. 상위 항목을 업데이트 할 수 있습니다. 그런 다음 4000-feature-1 분기를 사용하는 동안 git rebase 4000-base 명령을 사용할 수 있습니다. 여기에 git rebase에 대한 자세한 정보가있는 링크가 있습니다. https://git-scm.com/docs/git-rebase

+0

또한,'rebase'와'merge'와 관련하여, 팀과 확인하고 어떤 팀이 팀원인지 알아보기를 원할 것입니다. [Rebasing] (https://git-scm.com/book/en/v2/Git-Branching-Rebasing) – crashmstr

+0

커밋이 원격 저장소로 푸시되지 않는 한, 나는'rebase'를 얻을 것입니다. 그렇지 않으면'merge'. @crashmstr – Rumid

+1

git의 "문제": 종종 여러 가지 * 유효한 * 방법이 있습니다. 당신은'rebase'를 선호합니다, 나는'merge'를 선호합니다 (그리고 또한 지형지 ​​물에 대한 커밋과 푸시 변경을 정기적으로 제안 할 것입니다). 다시 말하지만, 그들은 팀과 이야기하고 팀이 어떻게 일하고 있는지 찾아야합니다. – crashmstr

-1

1 단계 : 해당 지역의 repo에서

git stash 

. 이렇게하면 로컬 업데이트를 숨겨둔 곳에 저장 한 다음 수정 된 파일을 사전 편집 상태로 되돌릴 수 있습니다.

2 단계 :

git pull 

는 수정 된 버전을 얻을 수 있습니다. 이제는 걱정되는 파일의 새 버전을 얻지 못할 것입니다. 그렇지 않으면 다음 단계가 원활하게 작동합니다. 그럴 경우, 할일이 생겨서 기쁘게 생각합니다.

3 단계 :

git stash pop 

모든 것이 순조롭게된다면 당신은 단지 2 단계에서 뽑아 버전 1 단계에서 멀리 은닉 수정 된 버전을 병합 것, 당신은 모든 설정이 될 것이다!

반면에 2 단계에서 가져온 내용과 수정 내용 (중간에 다른 사람이 편집 한 내용)으로 인해 실제로 충돌이 발생하면 해결 방법을 찾아서 알려야합니다. 해.

변경 사항을 커밋 할 수 있습니다.

+1

Nope. 부모가 아닌 지점에서 작업하고 있습니다 (하지만 병합되기 전에 커밋되지 않은 변경 사항은 적용됩니다). – crashmstr

관련 문제