당신이 얼마나 멀리 떨어져 있는지 그리고 당신이 원하는 지점에 따라 다양한 방법이 있습니다.
고전적인 실수를 봅시다 :
$ git checkout master
... pause for coffee, etc ...
... return, edit a bunch of stuff, then: oops, wanted to be on develop
그래서 지금 당신은 당신이 아직 최선을 다하고하지 않은 이러한 변경이 원하는 master
에로 develop
.
당신이있는 경우 가없는 을 develop
아직 방법은 간단하다 :
$ git checkout -b develop
이것은 develop
당신이 지금 어디에서 시작 하여 새로운 지점을 만듭니다 . 이제 커밋 할 수 있고 새로운 것들이 모두 켜져 develop
있습니다.
당신 이 할 을 develop
. Git이 아무것도하지 않고 전환 할 수 있는지 확인하십시오.
$ git checkout develop
이것은 성공하거나 불평 할 것입니다. 성공하면 훌륭합니다! 커밋하십시오. 그렇지 않은 경우 ( error: Your local changes to the following files would be overwritten ...
) 여전히 많은 옵션이 있습니다.
가장 쉬운 방법 일 것입니다 git stash
(클릭하는 것에 대해 다른 모든 응답자가 post말한 것처럼 ). git stash save
또는 git stash push
, 1 또는 /에 git stash
대한 간단한 일반 을 실행하십시오 .save
push
$ git stash
이것은 이상한 non-branch-y 메소드를 사용하여 코드를 커밋합니다 (예, 실제로 커밋합니다). 커밋은 어떤 브랜치 "on"이 아니라 이제 리포지토리에 안전하게 저장되므로 이제 브랜치를 전환 한 다음 스 태쉬를 "적용"할 수 있습니다.
$ git checkout develop
Switched to branch 'develop'
$ git stash apply
모든 것이 잘되고 결과가 마음에 git stash drop
들면 숨겨야합니다. 이것은 이상한 non-branch-y commit에 대한 참조를 삭제합니다. (그들은 여전히 저장소에 있으며 때로는 비상 사태에서 검색 할 수 있지만 대부분의 경우 해당 시점에 사라 졌다는 것을 고려해야합니다.)
이 apply
단계는 Git의 강력한 기본 병합 기계를 사용하여 분기 병합을 수행 할 때 사용하는 것과 같은 종류의 숨김 변경 사항을 병합합니다. 이는 실수로 작업중인 지점이 작업하려는 지점과 충분히 다른 경우 "병합 병합"을 얻을 수 있음을 의미합니다. 따라서 Git 자체가 병합 충돌을 감지하지 않더라도 숨김이 깨끗하게 적용되었다고 가정하기 전에 결과를주의 깊게 검사 하는 것이 좋습니다 .
많은 사람들 git stash pop
이의 약자를 사용 합니다 git stash apply && git stash drop
. 괜찮아도 응용 프로그램이 엉망이 되어이 경로를 진행하지 않기로 결정하면 쉽게 숨길 수 없다는 것을 의미합니다. 그래서 만족할 경우에만 별도의 apply
, 결과를 검사하는 것이 좋습니다 drop
. (물론 이것은 또 다른 커피 브레이크를 취하고하고 있던 일을 잊고, 돌아와서 잘못된 일을 할 수있는 또 다른 요점을 소개 하므로 완벽한 치료법은 아닙니다.)
1save
에서이 git stash save
새로운 은닉을 만들기위한 기존의 동사입니다. Git 버전 2.13은 새로운 동사를 도입하여 일을보다 일관성있게 pop
만들고 작성 명령에 더 많은 옵션을 추가했습니다. Git 버전 2.16은 이전 동사를 공식적으로 더 이상 사용하지 않습니다 (여전히 편집 할 때 최신 릴리스 인 Git 2.23에서 작동하지만).
git stash
git-scm.com/book/ko/Git-Tools-Stashing