실행할 때 다음과 같은 결과가 나타납니다. git status
Your branch is ahead of 'origin/master' by 3 commits.
다른 게시물 에서이 문제를 해결하는 방법을 읽었 git pull --rebase
지만 정확히 rebase가 무엇입니까, 데이터가 손실됩니까, 아니면 마스터와 동기화하는 간단한 방법입니까?
실행할 때 다음과 같은 결과가 나타납니다. git status
Your branch is ahead of 'origin/master' by 3 commits.
다른 게시물 에서이 문제를 해결하는 방법을 읽었 git pull --rebase
지만 정확히 rebase가 무엇입니까, 데이터가 손실됩니까, 아니면 마스터와 동기화하는 간단한 방법입니까?
답변:
로컬 마스터를 변경하고 원격으로 푸시하지 않았기 때문에 해당 메시지가 표시됩니다. 이를 해결하는 방법에는 여러 가지가 있으며 일반적으로 워크 플로의 모양에 따라 다릅니다.
git push origin
원점이 가정하면 원격git reset --hard origin/master
git diff master origin/master
(예 :)git diff local remote
git push origin master:branch
어느 반환 Everything up-to-date
된를 사용하여 x commits에 의한 메시지가 사라졌습니다.
수정할 것이 없습니다. 당신은 단순히 3 개의 커밋을 만들고 아직 원격 브랜치로 옮기지 않았습니다. 수행하려는 작업에 따라 몇 가지 옵션이 있습니다.
git push
: 변경 사항을 리모컨으로 옮깁니다 (원격에 다른 변경 사항이있는 경우 거부 될 수 있음)git pull
: 원격에서 변경 사항이있는 경우이를 가져와 변경 사항에 병합하십시오.git pull --rebase
: 위와 같지만 원격 변경 사항 위에 커밋을 다시 실행하십시오.당신은 고전적인 상황에 처해 있습니다 (일반적으로 대부분의 워크 플로에서 마스터를 많이하지는 않지만). 일반적으로 수행 할 작업은 다음과 같습니다. 변경 내용을 검토하십시오. 어쩌면 git rebase --interactive
화장품을 만들고, 빨아들이는 화장품을 떨어 뜨리고, 더 논리적으로 만들기 위해 재정렬하십시오. 이제로 리모컨으로 옮깁니다 git push
. 로컬 지사가 최신 상태가 아니 어서 거부 된 경우 : git pull --rebase
가장 최근의 변경 사항에 대해 내 작업을 다시 실행 git push
해야합니다.
your team lead merged to master
? 이미 마스터하도록 강요했다고 말하지 않았습니까? 추가 커밋에는 무엇이 포함됩니까? 시도 git diff origin/master
원격에서 어떻게 해당 지역의 지점 다릅니다 볼 수 있습니다.
1 단계 :git checkout <branch_name>
이것은 해당 지점으로가는 것이 분명합니다.
2 단계 :git pull -s recursive -X theirs
원격 브랜치 변경을 수행하고 충돌이 발생하면 변경을 대체하십시오. 여기 당신 git status
이 이렇게하면 당신의 지점은 3 커밋으로 '원산지 / 마스터'보다 앞서 있습니다.
3 단계 :git reset --hard origin/<branch_name>
4 단계 :git fetch
지점을 하드 리셋하십시오.
즐겨.
Bitbucket에서 풀 요청을 병합 한 후이 문제가 발생했습니다.
해야했다
git fetch
그게 다야.
일반적으로 마스터와 다른 커밋이 무엇인지 확인 해야하는 경우 :
git rebase -i origin/master
이런 식으로 커밋을보고 삭제하거나 선택하기로 결정할 수 있습니다 ...
git diff ...
마술들이 작동하지 않았다. 내가 이것을했을 때, 그것은 noop
유일한 커밋으로 주었고, 그것을 수락했을 때, 이제 내 지점은 출발지 / 마스터와 동기화되어 있습니다. 따라서 원산지 / 마스터의 커밋 차이는 아무런 영향을 미치지 않는 것으로 보입니다.
이 메시지는 git
로컬 master
리포지토리 에서 3 개의 커밋을 만들고 리포지토리에 게시하지 않았 음을 의미 합니다. 이를 위해 실행할 명령은 git push {local branch name} {remote branch name}
입니다.
명령 git pull
(및 git pull --rebase
)은 로컬 리포지토리에없는 원격 리포지토리에 커밋이있는 다른 상황에 대한 것입니다. 이 --rebase
옵션은 git
로컬 커밋을 한쪽으로 옮기고 원격 리포지토리와 동기화 한 다음 새 상태에서 세 가지 커밋을 적용하려고합니다. 충돌이 발생하면 실패 할 수 있지만이를 해결하라는 메시지가 표시됩니다. rebase
를 사용하여 충돌을 해결하는 방법을 모르면를 중단하고 git rebase --abort
실행하기 전에 상태로 돌아갑니다 git pull --rebase
.
Bitbucket에 풀 요청을 병합 한 후에 한 번 일어났습니다.
방금해야 할 일 :
git fetch
내 문제가 해결되었습니다. 이게 도움이 되길 바란다!!!
$ git fetch
- remote: Enumerating objects: 3, done.
- remote: Counting objects: 100% (3/3), done.
- remote: Compressing objects: 100% (3/3), done.
- remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
$ git pull
- Already up to date!
- Merge made by the 'recursive' strategy.
드디어:
$ git push origin