변경 사항을 커밋하지 않은 경우
변경 사항이 다른 지점과 호환되는 경우
OP가 새 브랜치를 커밋하고 변경 사항이 덮어 쓰기를 트리거하지 않고 대상 브랜치와 호환되는 경우에도 적용되기 때문에 문제가 발생합니다.
John Brodie의 수락 된 답변과 마찬가지로 새 지점을 체크 아웃하고 작업을 커밋 할 수 있습니다.
git checkout -b branch_name
git add <files>
git commit -m "message"
변경 사항이 다른 지점과 호환되지 않는 경우
오류가 발생하면 :
error: Your local changes to the following files would be overwritten by checkout:
...
Please commit your changes or stash them before you switch branches
그런 다음 작업을 숨기고 새 분기를 만든 다음 숨김 변경 사항을 표시하고 충돌을 해결할 수 있습니다.
git stash
git checkout -b branch_name
git stash pop
마치 새 브랜치를 생성 한 후에 변경 한 것처럼됩니다. 그런 다음 평소처럼 커밋 할 수 있습니다.
git add <files>
git commit -m "message"
변경 사항을 커밋 한 경우
커밋을 원래 브랜치에 유지하려면
이 경우 올바른 도구 인 체리 따기와 함께 Carl Norum의 답변을 참조하십시오.
git checkout <target name>
git cherry-pick <original branch>
커밋을 원래 분기에 유지하지 않으려는 경우
이 잠재적 중복 에 대한 joeytwiddle의 답변을 참조하십시오 . 위의 단계를 적절히 수행 한 다음 원래 분기를 롤백하십시오.
git branch -f <original branch> <earlier commit id>
GitHub와 같은 공유 리모콘으로 변경 사항을 푸시 한 경우 수행중인 작업을 모르면이 롤백을 시도해서는 안됩니다.