메인 브랜치가 체크 아웃되고 전체 파일 더미가 수정되고 커밋되지 않은 서버에 git 제어 폴더가 있습니다. 깨끗한 버전으로 돌아갈 수 있도록 별도의 분기에 변경 사항을 커밋 할 수있는 방법이 있습니까?
즉,이 모든 사람의 변경 사항을 효율적으로 취소하고 싶지만 다른 기회에 저장하여 해당 사람이 변경 사항을 원할 경우 해당 분기로 전환 할 수 있습니다.
(예, 이것이 git이 작동하도록 설계된 방식이 아니라는 것을 알고 있지만 그것이 제 상황입니다!) 어떤 아이디어라도 대단히 감사합니다.
답변
먼저 현재 HEAD를 기반으로 다른 분기로 이동하는 것은 다음과 같이 수행됩니다.
git checkout -b newbranch
모든 변경 사항을 커밋합니다 (새로 추가 된 파일이 없다고 가정하고 그렇지 않으면 파일 git add
).
git commit -a
마스터 브랜치로 돌아갑니다.
git checkout master
이전에 커밋되지 않은 변경 사항은 모두 newbranch 분기에 있으며 마스터는 해당 변경 사항이없는 상태로 유지됩니다.
답변
이 방법은 유용합니다.
git checkout -B <new_branch> <start point>
어디:
<new_branch>
당신의 새로운 지점 (예my_branch
)<start point>
당신의 시작 지점입니다 (master
귀하의 경우)-B
에서 시작하는 새 분기를 생성<start point>
하고 이미 존재하는 경우 다음으로 재설정합니다 (-b
분기가 이미 존재하는 것처럼 실패하지 않음 ).- 때때로
-m
분기를 전환 할 때 지정하는 데 유용 할 수 있습니다. 이것은 현재 분기, 작업 트리 내용 (스크립팅에 유용함)간에 3 방향 병합을 수행합니다.
자세한 내용 man git-checkout
은 참조하십시오.
답변
언제든지 변경 사항을 숨길 수 있습니다.
git stash
git checkout -b bravenewmaster
git stash apply
또한 “잘못된”브랜치에 커밋하면 브랜치가 커밋에 대한 포인터 일 뿐이므로 항상 해당 브랜치를 뒤로 이동할 수 있습니다.