HOWTO · Git
커밋되지 않은 기존 변경 사항을 Git의 새 분기로 이동
커밋되지 않은 변경 사항을 Git의 새 브랜치로 이동할 수 있습니다.
이 페이지의 내용
이 문서에서는 커밋되지 않은 변경 사항을 새 분기로 이동하는 프로세스에 대해 설명합니다.
마스터 브랜치에서 작업 중일 수 있으며 새 브랜치를 생성하고 커밋되지 않은 변경 사항을 이동해야 한다는 것을 깨달을 수 있습니다. 비슷한 상황에 처해 있다면 가만히 있으십시오.
커밋되지 않은 기존 변경 사항을 새 분기로 이동
다음 가상 시나리오를 살펴보십시오. 마스터 브랜치에서 작업 중이고 마스터에 커밋하기 전에 코드 테스트가 필요하다는 것을 깨달았습니다.
새 분기를 만들고 커밋되지 않은 변경 사항을 이동하고 마스터 분기를 재설정해야 합니다. 어떻게 하시겠습니까?
두 가지 방법이 있습니다.
git checkout명령 또는git switch명령 사용.git stash명령 사용.
git checkout 및 git switch 명령
오랫동안 Git을 사용해 왔다면 git checkout 명령이 여러 용도로 사용된다는 것을 알고 있을 것입니다. git checkout 명령을 사용하여 새 분기를 만들고 전환할 수 있다는 것을 알고 있습니다.
우리가 master 브랜치에 있다고 가정하고 작업 공간은 다음과 같습니다.
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to ...)
(use "git checkout -- <file>..." to ...)
modified: LICENSE.md
modified: README.md
Untracked files:
(use "git add <file>..." to include...)
scripts.txt
no changes added to commit (use..)
이러한 변경 사항을 새 분기로 어떻게 이동합니까?
변경 사항을 새 분기(예: 새 development 분기)로 이동하려면 다음을 실행합니다.
$ git checkout -b development
또는 아래 그림과 같이 git switch 명령을 사용할 수 있습니다.
$ git switch -c development
두 명령 모두 development 분기를 생성하고 커밋되지 않은 변경 사항을 새 분기로 이동합니다. 아래는 development 브랜치의 작업 디렉토리입니다.
그런 다음 파일을 인덱스에 추가하고 커밋할 수 있습니다.
master 브랜치로 다시 전환하고 git status 명령을 실행하면 작업 트리가 깨끗한 것을 볼 수 있습니다.
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
git stash 명령
git stash 명령을 사용하여 변경 사항을 새 분기로 이동할 수 있습니다. 이렇게 하면 커밋되지 않은 변경 사항이 패치 파일에 저장됩니다.
$ git stash
그런 다음 커밋되지 않은 변경 사항을 저장할 새 분기를 만들 수 있습니다. 아래와 같이 git checkout 명령을 사용하여 새 분기를 만들고 전환합니다.
$ git checkout -b <new branch>
커밋되지 않은 변경 사항을 새로 생성된 브랜치의 작업 공간에 적용하기 위해 stash를 팝합니다. git stash pop 또는 git stash apply 명령을 사용하십시오.
$ git stash pop
원하는 대로 수동으로 해결해야 하는 병합 충돌이 발생할 수 있습니다. 변경 사항에 만족하면 커밋을 진행합니다.
간단히 말해서 커밋되지 않은 변경 사항을 한 분기에서 다른 분기로 이동하려면 두 가지 옵션이 있습니다. git stash 명령이나 일반적인 git switch 및 git checkout 명령을 사용할 수 있습니다.