원격 마스터로 로컬 브랜치를 리베이스하는 방법 마스터 브랜치에서 복제 된 프로젝트가

원격 저장소의 마스터 브랜치에서 복제 된 프로젝트가 있습니다 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 버전은 위의 두 명령과 동일한 작업을 수행하는 간단한 방법을 제공합니다.


답변

git pull --rebase origin master
# where --rebase[=(false|true|merges|preserve|interactive)]


답변

지점에 변경 사항을 커밋 한 후 체크 아웃 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 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   :~


답변

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 👌