힘내 풀과 힘내 리베이스
나는 망할 놈의 멍청한 놈이야,하고의 차이 배우려고 노력 git pull
대를 git rebase
. 둘 다 동일한 목적을 수행한다고 생각하기 때문에 누군가 어떤 옵션을 사용할 때 예를 들어 줄 수 있습니까?
git pull
와 git rebase
호환되지 않습니다,하지만 그들은 밀접하게 연결되어있다.
git pull
원격에서 현재 분기의 최신 변경 사항을 가져와 해당 변경 사항을 분기의 로컬 복사본에 적용합니다. 일반적으로 이것은 병합에 의해 수행됩니다. 즉, 로컬 변경 사항이 원격 변경 사항에 병합됩니다. 그래서 git pull
유사하다 git fetch & git merge
.
리베이스는 병합의 대안입니다. 두 분기를 결합하는 새 커밋을 만드는 대신 분기 중 하나의 커밋을 다른 분기 위로 이동합니다.
병합 ( git pull --rebase
) 대신 rebase를 사용하여 가져올 수 있습니다 . 로컬 변경 사항은 원격 변경 사항과 병합되는 대신 원격 변경 사항을 기반으로합니다.
Atlassian에는 병합과 리베이스에 대한 훌륭한 문서가 있습니다.
git-pull-다른 저장소 또는 로컬 브랜치 GIT PULL 에서 가져 와서 통합
기본적으로 원격 분기를 로컬로 가져옵니다. 예 :
git pull origin master
마스터 브랜치를 로컬 저장소로 가져옵니다.
git- rebase- 업데이트 된 업스트림 헤드 GIT REBASE에 대한 포워드 포트 로컬 커밋
이것은 다른 사용자가 원격으로 수행 한 변경 사항 위에 로컬 변경 사항을 적용하는 것입니다. 예를 들면 :
- 예를 들어 로컬 브랜치에서 일부 변경 사항을 커밋했습니다.
SOME-FEATURE
- 그 동안 친구가 다른 기능을 작업 중이었고 브랜치를 마스터로 병합했습니다.
이제 로컬 브랜치에서 그의 변경 사항과 변경 사항을보고 싶습니다. 그런 다음 master
지점을 확인합니다.
git checkout master
그러면 다음을 가져올 수 있습니다.
git pull origin master
그런 다음 지점으로 이동합니다.
git checkout SOME-FEATURE
그리고 당신은 master
그것에서 최신 변경 사항을 얻고 분기 커밋을 맨 위에 올려 놓기 위해 리베이스 를 할 수 있습니다 .
git rebase master
이제 좀 더 명확 해 졌으면합니다.
간단히 말해서 :
-> Git Merge : 단순히 당신과 원격 변경 사항을 병합하고 다른 커밋 기록 레코드를 생성합니다.
-> Git Rebase : 모든 새로운 원격 변경 사항보다 변경 사항을 적용하고 커밋 기록을 다시 작성하므로 커밋 기록이 훨씬 깔끔해집니다. Rebase는 파괴적인 작업입니다. 즉, 올바르게 적용하지 않으면 커밋 된 작업을 잃거나 다른 개발자 저장소의 일관성이 깨질 수 있습니다.
참고 URL : https://stackoverflow.com/questions/36148602/git-pull-vs-git-rebase
'code' 카테고리의 다른 글
Go에서 포인터를 사용하는 이유는 무엇입니까? (0) | 2020.09.25 |
---|---|
디렉토리와 폴더의 차이점은 무엇입니까? (0) | 2020.09.25 |
Windows의 응용 프로그램에 Ctrl-C (SIGINT)를 보낼 수 있습니까? (0) | 2020.09.25 |
foreach 루프 내부 또는 외부에서 변수 선언 : 어느 것이 더 빠르거나 더 낫습니까? (0) | 2020.09.25 |
할당 된 값이 아닌 단위로 평가하는 Scala 할당의 동기는 무엇입니까? (0) | 2020.09.25 |