답변:
필요한 것은 다음과 같습니다.
git stash
git checkout branch123
git stash apply
그런 다음 마스터 브랜치를 건드리지 않고 자신의 브랜치로 돌아와야합니다.
stash
로컬 수정 사항을 저장 한 다음 stash apply
다시 가져옵니다.
git reset --hard HEAD
마스터 브랜치에 마지막 커밋으로 돌아갑니다.
허용되는 답변이 가장 철저하지만 단순화 할 수있는 특별한 경우가 있습니다. 당신이 작업 디렉토리에 수정 한 파일이 모두 동일한 경우 master
와 branch123
간단히 할 수있는
git checkout branch123
기본 동작은 checkout
작업 디렉토리에서 수정 된 파일을 덮어 쓰지 않는 것이므로 아무 것도 숨기지 않아도 되므로 아무 것도 잃지 않습니다. (이것은 실제로 Cascabel의 첫 번째 의견에서 언급되었습니다)
다른 사람들이 의견에서 언급했듯이 branch123
아직 존재하지 않으면 할 수 있습니다
git checkout -b branch123
git checkout -b newbranch
master
및 에서 동일하지 않은 경우가 있습니다 branch123
. 내 편집 답변을 참조하십시오.
git stash
당신이 필요한 것입니다.
자세한 설명은 Git-Tools-Stashing 에서 찾을 수 있습니다.
파일을 체크 아웃하는 동안 새 분기를 만들 수는 있지만 기존 분기를 체크 아웃 할 수 없으므로 임시 분기를 사용하여 다음 트릭을 발견했습니다.
이 시나리오는 적어도 VS 2015 Git 플러그인에서 작동하지만 대부분의 git 도구에서 작동합니다.
편집 : 병합을 수행하기 전에 임시 분기의 리베이스 (git rebase --onto)를 수행해야한다는 것을 알았습니다. 그렇지 않으면 마스터의 변경 사항이 병합에 포함됩니다. 위의 추가 단계 3.5. rebase에 대한 자세한 내용은 여기를 참조하십시오 : https://git-scm.com/book/en/v2/Git-Branching-Rebasing