developer tip

원격 저장소에서 분기의 새 사본을 얻는 방법은 무엇입니까?

optionbox 2020. 11. 28. 09:08
반응형

원격 저장소에서 분기의 새 사본을 얻는 방법은 무엇입니까?


내 친구의 지역 master지점은 분명히 재앙입니다 (우연한 merges와 commits를 통해 ). 그러나 그의 개발 브랜치는 괜찮지 만 원격으로 푸시 할 준비가되지 않은 변경 사항이 포함되어 있습니다.

master원격 master지점으로 로컬 지점을 재정의하고 다른 지점을 재정의하지 않고 새 복사본을 얻는 가장 좋은 방법은 무엇입니까 ?


Jefromi가 말했듯이,

git checkout master
git reset --hard origin/master

옳은 일을합니다 : 마스터를 원래 상태로 설정합니다. (이미 master브랜치 에있는 경우 첫 번째 명령을 생략 할 수 있습니다.) 브랜치의 리플 로그도 그대로 둡니다.


이전 열등한 답변 :

git checkout dev
git branch -D master
git checkout master

이렇게하면 다른 브랜치 (이 경우 "dev"– 보유하고있을 수있는 다른 브랜치를 선택)로 전환하고 로컬 master브랜치를 삭제 한 다음 다시 생성합니다 remotes/origin/master(설정 및 Git 버전에 따라 작동하지 않을 수 있음). 마지막 명령은 종종 다음과 같습니다.

git checkout -b master remotes/origin/master

위의 새로운 답변과 비교할 때 이것은 reflog가 파괴되고 다시 생성된다는 단점이 있으며 (즉, 필요한 경우 쉽게 취소 할 수 없음) 여기서 일어나는 일이 명확하지 않습니다. 또한 삭제 및 재생성 중에 전환 할 수있는 다른 분기가 있어야합니다 (원래 질문의 경우).


Paŭlo Ebermann의 대답은 정확합니다.

git checkout master
git reset --hard origin/master

추적되지 않은 파일과 무시 된 파일도 제거하려면 다음을 추가 하십시오.

git clean -xfn # dry run with -n

자세한 내용이있는 소스 : 현재 Git 작업 트리에서 로컬 (추적되지 않은) 파일을 제거하는 방법은 무엇입니까?

참고 URL : https://stackoverflow.com/questions/5657451/how-to-get-a-fresh-copy-of-a-branch-from-the-remote-repository

반응형