궁극적인 가이드 Git Merge 진행하고 있습니다.리베이스

우리는 우리의 궁극적인 가이드git mergegit rebase명령이 있습니다. 이 튜토리얼은 Git 과 여러 브랜치를 결합하는 것에 대해 알아야 할 모든 것을 가르쳐 줄 것입니다.

Git Merge

git merge명령을 병합합니다 모든 변경 사항을 기본 코드에 별도의 지점은 현재 지점으로 새로운다.,

명령 구문은 다음과 같습니다:

git merge BRANCH-NAME

경우,예를 들어,당신은 현재 지점에서 이름dev고 싶은 병합해 새로운 변경 사항에 만들어진 지점 라는new-features,당신은 것이 문제는 다음과 같은 명령을 실행합니다:

git merge new-features

참고:이 있는 경우되지 않은 변경사항은 현재 지점,자식을 허용하지 않습니다 당신을 병합하까지의 모든 변경 사항에 현재 지점 최선을 다하고 있다., 을 처리하는 그 변경할 수 있습니다:

새로 만들 지점 commit 변경

git checkout -b new-branch-namegit add .git commit -m "<your commit message>"

숨기

git stash # add them to the stashgit merge new-features # do your mergegit stash pop # get the changes back into your working tree

을 포기하의 모든 변경 사항

git reset --hard # removes all pending changes

Git 은 리베

리베이스에서 지점에 힘내는 방법으로 이동하려면 전체의 분기를 다른 지점에서 나무입니다. 가장 간단한 예는 트리에서 분기를 더 위로 이동하는 것입니다., 우리가 있는 분기를 갈라서 마스터는 지점에는 포인트:

 /o-----o---o--o-----o--------- branch--o-o--A--o---o---o---o----o--o-o-o--- master

경우 리베이로 이동할 수 있습 it like this:

 /o-----o---o--o-----o------ branch--o-o--A--o---o---o---o----o--o-o-o master

리베이 있는지 확인하는 모든 커밋에서 당신이 원하는 용서입니다. Rebase 할 브랜치를 확인하고git rebase master(여기서 master 는 rebase 할 브랜치 임)를 입력하십시오., 는 예를 들어 분기를 기반으로 하는 다른 지점(하는 기능)을 기준에스 마스터:

 /---o-o branch /---o-o-o-o---o--o------ feature----o--o-o-A----o---o--o-o-o--o--o- master

git rebase master branch또는git rebase master경우 체크아웃 지점,당신이 얻을:

 /---o-o-o-o---o--o------ feature----o--o-o-A----o---o--o-o-o--o--o- master \---o-o branch

Git’head’에서는 콘솔

사용하는git rebase콘솔에서 목록으로 커밋을 선택할 수 있고,편집하거나 삭제에서의 튜토리얼:

  • 입력git rebase -i HEAD~5와 마지막 번호가 되는 어떤 숫자의 커밋에서 가장 최근의 뒤로하고 싶다.,
  • vim 에서esc를 누른 다음i를 눌러 테스트 편집을 시작하십시오.
  • 왼쪽에서 아래 명령 중 하나를 사용하여pick를 덮어 쓸 수 있습니다. 하려면 스쿼시 commit 으로 이전나 버리고 commit 메시지를 입력f에서는 장소의pick다.
  • 텍스트 편집기를 저장하고 종료하십시오.
  • rebase 가 중지되면 필요한 조정을 한 다음 rebase 가 성공할 때까지git rebase --continue를 사용하십시오.,
  • 경우 개상 성공적으로 필요가 다음을 강제로 밀어 변경 내용과 함께git push -f추가 주소 버전을 원격 저장소에 있습니다.
  • 있는 경우에는 병합,충돌의 숫자가 수정하는 방법 이 포함하여,다음과 같은 제안에 이 guide. 한 가지 방법은 텍스트 편집기에서 파일을 열고 원하지 않는 코드 부분을 삭제하는 것입니다. 그런 다음git add <file name>다음에git rebase --continue를 사용하십시오., 콘솔에서git rebase --abort를 실행하여 rebasing 을 중지하여git rebase --skip를 입력하여 충돌하는 커밋을 건너 뛸 수 있습니다.

충돌

병합 갈등을 만들 때 커밋에 별도의 지점을 변경하는 같은 줄에 충돌하는 방법이다.,는 버전의 파일에 계속 유사한 오류 메시지를 다음과 같다:

CONFLICT (content): Merge conflict in resumé.txt Automatic merge failed; fix conflicts and then commit the result.

에서 보면resumé.txt는 코드에서 파일 편집기,당신이 볼 수있는 충돌이 일어났다:

<<<<<<< HEADAddress: 808 South Street=======Address: 505 North Street>>>>>>> updated_address

Git 추가 몇 가지 추가 선 file:

  • <<<<<<< HEAD
  • =======
  • >>>>>>> updated_address

Git Merge 대 Git 은 리베

모두git mergegit rebase명령은 매우 유용합,한지 않습니다., 그러나 귀하와 귀하의 팀이 고려해야 할 두 가지 명령 간에는 매우 중요한 차이점이 있습니다.

git merge가 실행될 때마다 추가 병합 커밋이 생성됩니다. 로컬 저장소에서 작업 할 때마다 병합 커밋이 너무 많으면 커밋 기록이 혼란스러워 보일 수 있습니다. 병합 커밋을 피하는 한 가지 방법은 대신git rebase를 사용하는 것입니다.이것은 매우 강력한 기능입니다. 즉,말했다되고,그것은 올바른 방법으로 사용하지 않는 경우뿐만 아니라 위험하다., git rebase는 커밋 기록을 변경하므로주의해서 사용하십시오. 을 경우 리베이스에서 원격 저장소,다음 그것을 만들 수 있습 많은 문제가 다른 개발자들을 끌어하려고 최신 코드 변경을 원격 저장소에서. 로컬 저장소에서git rebase만 실행하십시오.이것이 당신이 병합하고 rebase 하기 위해 알아야 할 전부입니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다