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