원격 저장소의 마스터 브랜치에서 복제 된 프로젝트가 있습니다 remote_repo
. 새 지점을 만들고 해당 지점에 커밋합니다. 다른 프로그래머들은 remote_repo
마스터 브랜치로 푸시했습니다 .
이제 지점 RB를 remote_repo
마스터 에 리베이스해야합니다 .
이것을하는 방법? 터미널에 어떤 명령을 입력해야합니까?
원격 저장소의 마스터 브랜치에서 복제 된 프로젝트가 있습니다 remote_repo
. 새 지점을 만들고 해당 지점에 커밋합니다. 다른 프로그래머들은 remote_repo
마스터 브랜치로 푸시했습니다 .
이제 지점 RB를 remote_repo
마스터 에 리베이스해야합니다 .
이것을하는 방법? 터미널에 어떤 명령을 입력해야합니까?
답변:
먼저 업스트림 리포지토리에서 새 마스터를 가져온 다음 작업 브랜치를 리베이스하십시오.
git fetch origin # Updates origin/master
git rebase origin/master # Rebases current branch onto origin/master
업데이트 : Paul Draper의 대답 을 참조하여 더 똑같은 작업을 수행하십시오. 최근 Git 버전은 위의 두 명령과 동일한 작업을 수행하는 간단한 방법을 제공합니다.
Your branch and 'origin/b1' have diverged, # and have 3 and 2 different commits each, respectively.
다른 git pull
것이 필요한 것처럼 보인다 . 이것이 맞습니까? 아니면 여기에 뭔가 빠졌습니까?
git rebase master
두 번째 명령 ( git rebase origin/master
) master
과 동일한 작업을 수행하지 않으며 origin/master
다른 커밋을 가리킬 수 있습니다 (특히 첫 번째 명령이 git fetch origin
이므로 수정 될 수 있음 origin/master
).
git pull --rebase origin master
# where --rebase[=(false|true|merges|preserve|interactive)]
git pull --rebase=interactive origin master
dev
run git pull --rebase origin master
에 있고 run 인 경우 branch만이 아니라 dev
수정 master
됩니다. --rebase
플래그 문서는에 시도하지한다고 rebase the current branch on top of the upstream branch after fetching
현지 추적 가지를 수정하는 방법에 대한 아무것도.
지점에 변경 사항을 커밋 한 후 체크 아웃 master
하고 당겨서 repo에서 최신 변경 사항을 가져옵니다.
git checkout master
git pull origin master
그런 다음 지점을 확인하고 다음을 변경하십시오 master
.
git checkout RB
git rebase master
... 또는 한 줄에서 마지막 두 명령 :
git rebase master RB
로 되돌리려 origin/RB
고하면 오류가 발생했을 수 있습니다. 당신이 일하는 유일한 사람이라면 RB
강제로 밀어 넣을 수 있습니다.
git push --force origin RB
... git이 적절하게 구성된 경우 다음과 같이하십시오.
git push -f
git push
없이 할 수 있음 -f
).
참고 : 리베이스에 대해 이미 폭 넓은 지식이있는 경우 빠른 리베이스를 위해 하나의 라이너 아래를 사용하십시오. 솔루션 : 작업 지점에 있고 작업중인 유일한 사람이라고 가정합니다.
git fetch && git rebase origin/master
충돌을 해결하고, 코드를 테스트하고, 변경 사항을 커밋하고 원격 지사에 적용하십시오.
~: For noobs :~
다음 단계는 git rebase
번거 로움없이 새로운 사람에게 도움이 될 수 있습니다.
1 단계 : 이 시점에서 YourBranch에 커밋 및 변경 사항이 없다고 가정합니다. 우리는 YourBranch를 방문하고 있습니다.
git checkout YourBranch
git pull --rebase
어떻게 된 거예요? 지점에서 작업하는 다른 개발자의 모든 변경 사항을 가져 와서 그 위에 변경 사항을 적용합니다.
2 단계 : 충돌이 있으면 해결합니다.
3 단계 :
git checkout master
git pull --rebase
어떻게 된 거예요? 원격 마스터에서 모든 최신 변경 사항을 가져오고 원격 마스터에서 로컬 마스터를 리베이스합니다. 나는 항상 원격 마스터를 깨끗하게 유지하고 준비합니다! 또한 로컬에서 마스터 또는 지점에서만 작업하는 것을 선호합니다. git 변경이나 커밋을 얻을 때 까지이 작업을 수행하는 것이 좋습니다. 참고 : 로컬 마스터를 유지 관리하지 않는 경우이 단계는 필요하지 않으며 대신 로컬 지점에서 직접 원격 마스터를 가져와 리베이스 할 수 있습니다. 처음에 한 단계에서 언급했듯이.
4 단계 : 충돌이 있으면 해결합니다.
5 단계 :
git checkout YourBranch
git rebase master
어떻게 된 거예요? 마스터 리베이스
6 단계 : 충돌이있는 경우 충돌을 해결합니다. git rebase --continue
해결 된 충돌을 추가 한 후 리베이스를 계속 하려면 사용하십시오 . 언제든지 git rebase --abort
리베이스를 중단하는 데 사용할 수 있습니다 .
7 단계 :
git push --force-with-lease
어떻게 된 거예요? 원격 YourBranch에 변경 사항을 푸시합니다. --force-with-lease
리베이스하는 동안 다른 개발자로부터 YourBranch에 대한 다른 수신 변경 사항이 있는지 확인합니다. 이것은 강제 푸시보다는 매우 유용합니다. 들어오는 변경 사항이있는 경우 변경 사항을 푸시하기 전에 변경 사항을 가져와 로컬 YourBranch를 업데이트하십시오.
변경 사항을 푸시해야하는 이유는 무엇입니까? 적절한 리베이스 후 또는 충돌이 해결 된 경우 원격 YourBranch에서 커밋 메시지를 다시 작성하려면? 그런 다음 로컬 저장소에서 해결 한 변경 사항을 YourBranch의 원격 저장소로 푸시해야합니다.
야후! 리베이스 작업이 성공적으로 완료되었습니다.
당신은 또한보고 할 수 있습니다 :
git checkout master
git merge YourBranch
언제 그리고 왜? 본인과 다른 공동 개발자가 변경 한 경우 지점을 마스터로 병합하십시오. 나중에 동일한 지점에서 작업하고 싶을 때 마스터와 함께 YourBranch를 최신 상태로 만듭니다.
~: (๑ơ ₃ ơ)♥ rebase :~
Pulls latest changes from remote master to local master. I always prefer keeping remote master clean and release ready always!
. 설명을 업데이트하겠습니다.
1 단계:
git fetch origin
2 단계:
git rebase origin/master
3 단계 :( 충돌시 수정)
git add .
4 단계 :
git rebase --continue
5 단계 :
git push --force
1. 먼저 마스터 업데이트 ...
git checkout [master branch]
git pull [master branch]
2. 이제 마스터 브랜치로 소스 브랜치 리베이스
git checkout [source branch]
git rebase [master branch]
git pull [source branch] (remote/source branch)
git push [source branch]
소스 분기가 아직 원격에 없으면 다음을 수행하십시오.
git push -u origin [source branch]
"et voila ..."
git fetch origin master:master
확인하지 않고도 최신 버전의 마스터를 가져옵니다.
따라서 필요한 것은 다음과 같습니다.
git fetch origin master:master && git rebase master
👌
git fetch
너무 그것을 확인하지 않고 마스터를 업데이트? 그것은 제외 git fetch
하지 않는 git merge
업데이트는 바로? 우리가 체크 아웃 master
하면 최신 업데이트가 없습니다. 그래서, 기능 분기 동안 할 짧은 아닌 git fetch
다음 git rebase origin/master
? 우리는 할 수 없어 git rebase master
그에서 리베이스하려고하기 때문에 master
작업 공간에서, 우리는 필요 origin/master
병합되지 않은에서 얻을 수 있지만, 지역 앉아.