커밋되지 않은 기존 변경 사항을 Git의 새 분기로 이동

John Wachira 2024년2월15일
커밋되지 않은 기존 변경 사항을 Git의 새 분기로 이동

이 문서에서는 커밋되지 않은 변경 사항을 새 분기로 이동하는 프로세스에 대해 설명합니다.

마스터 브랜치에서 작업 중일 수 있으며 새 브랜치를 생성하고 커밋되지 않은 변경 사항을 이동해야 한다는 것을 깨달을 수 있습니다. 비슷한 상황에 처해 있다면 가만히 있으십시오.

커밋되지 않은 기존 변경 사항을 새 분기로 이동

다음 가상 시나리오를 살펴보십시오. 마스터 브랜치에서 작업 중이고 마스터에 커밋하기 전에 코드 테스트가 필요하다는 것을 깨달았습니다.

새 분기를 만들고 커밋되지 않은 변경 사항을 이동하고 마스터 분기를 재설정해야 합니다. 어떻게 하시겠습니까?

두 가지 방법이 있습니다.

  1. git checkout 명령 또는 git switch 명령 사용.
  2. git stash 명령 사용.

git checkoutgit 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 switchgit checkout 명령을 사용할 수 있습니다.

작가: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

관련 문장 - Git Stash