2014-07-09 3 views
1

정확한 시나리오를 사용해야합니까 Git Rebase?"Git Rebase"를 이해하려고 시도합니다

나는 이것을 지난 3 년 동안 이해하려고 노력하고 있지만 나는 할 수 없다. 많은 블로그를 읽었습니다, stackoverflow의 Q &에 대한 자식 rebase하지만 아직도 그것에 대해 명확하지 않다. 나는 이것이 중복 질문일지도 모르지만 그 git rebase가 언제 사용되는지 정확히 이해할 필요가있다.

누구나, 분명히 설명해주십시오. 블로그 중 하나에서 다음 줄을 읽었습니다

"Git에는 한 분기에서 다른 분기로 변경 사항을 통합하는 두 가지 주요 방법 인 병합과 리베이스가 있습니다."

병합 명령과 관련이 있습니다. 그러나 rebase은 병합 명령을 어떻게 대체합니까? rebase가 병합 명령을 대체하는 방법을 설명함으로써 명령의 흐름을 알려주십시오. 나는 그런 식으로 이해할 수 있다고 생각합니다.

내 가난한 영어를 위해 죄송합니다. 감사합니다.

+0

그것은 모든 자식 책에 설명 된 것 : http://git-scm.com/book/en/ 힘내 - 분기 - Rebasing. –

+0

[ 'git merge'와 'git rebase'의 차이점은 무엇입니까?] (http://stackoverflow.com/questions/16666089/whats-the-difference-between-git-merge-and-git-rebase) – mvp

+0

@JBNizet., 귀하의 의견을 보내 주셔서 감사합니다! 그것이 내 질문에서 언급 한 블로그입니다. 공유 한 블로그의 첫 번째 줄을 읽으십시오. 병합을 대체하는 명령의 흐름을 적어주십시오. –

답변

0

양방향 튜토리얼은 매우 좋으며 몇 가지 리베이스 수업을 시도해보십시오. 나는 실제로 리팩토링을 이해하는 사람은 거의 없다는 것을 알았다.

Rebase가 병합을 대체하지 않습니다. 병합은 "결합"하여 새 커밋을 만드는 것입니다. Rebase는 일반적으로 트리를 중심으로 커밋을 이동하는 것으로, 커밋 순서와 그 작업을 커밋합니다.

+0

감사합니다. @spinus .. !! rebase에 대해 이해하는 것은 꽤 명확합니다. 또한, 여러 가지 브랜치를 만들어 내 자신의 git repo에서 운동을 시도했습니다. 다시 한번 감사합니다. –

+0

-1 전혀 도움이되지 않는 링크 전용 답변. "전환 명령 및 그 물건"을 말할 때, 그것이 실제로 어떻게 작동하는지 전혀 모른다는 것을 의미합니다. 그리고 기록을 위해 리베이스가 병합을 대체 할 수 있습니다 - 리베이스 된 로컬 커밋이 업스트림으로 푸시되지 않는 한. – mvp

+0

@mvp, 전체 문장을 읽는 것이 좋을 것입니다. 더 나은 답변을 제공하고 upvote 해줘서 기쁩니다. – spinus

0

내 이해에 따라, 이것은 리베이스가하는 것입니다.

시나리오 설명 :
1) 현재 지점 마스터입니다. 나는 개발자하자
5) 나는 개발자가이 지점 A. 데브 (A)에 작업 이름하자), 또한) 마스터
3에서 지점 A를 만들기 마스터
4에서 지점 B를 만들기
2) 지점 A에서 코드를 수정 B라는 이름의 B는 B 지점의 코드를 수정합니다.
6) 이제 Dev B는 Dev A의 코드를 자신의 가지 B가 아닌 Merge하고 싶다고 생각합니다. A, 브랜치 A에서 코드를 가져 와서 브랜치 B로 다시 체크 아웃하고 git merge 브랜치 A를 수행하십시오. 이것이 git merge가하는 일입니다.) 데브 B는 자신의 지점에있는에 의해 "자식 REBASE의 브랜치"를 실행
7)하지만, 지점 B의 머리는 지금
8) 지점 B. 합병 지점 A로 위에 오는 데브 경우 A는 개발자 B의 코드를 병합하려고한다고 생각합니다. 그는 "git rebase branch B"을해야합니다. 이제 브랜치 B의 헤드는 브랜치 A와 병합 된 B의 코드를 브랜치 A에 병합하여 머리 꼭대기에있게됩니다.
9) 이제 커밋 버전의 흐름이 직선이됩니다. 이것은 깨끗하다 !!

내 잘못된 경우 제발 올바른 .. GIT에 대한 자세한 학습에 관심이 ..

덕분에

관련 문제