728x90
반응형

Git에서 작업을 하다 보면, 현재 작업 중인 내용을 임시로 저장하고 다른 작업을 해야 할 때가 있습니다. 이럴 때 유용하게 사용할 수 있는 기능이 git stash입니다. git stash를 사용하면 변경 사항을 임시로 저장하고 나중에 다시 적용할 수 있습니다.

Git Stash 기본 사용법

1. 현재 작업 내용을 스태시하기

git stash

이 명령어를 실행하면 현재 작업 디렉토리와 인덱스의 변경 사항이 스태시됩니다. 변경 사항은 임시 저장소에 저장되며, 작업 디렉토리는 깨끗한 상태로 돌아갑니다.

2. 스태시 목록 확인

git stash list

스태시된 항목의 목록을 확인할 수 있습니다. 예를 들어, 다음과 같은 출력이 나올 수 있습니다:

stash@{0}: WIP on develop: 1234567 Commit message
stash@{1}: WIP on feature-branch: 89abcdef Another commit message

3. 스태시한 작업 적용하기

git stash apply

가장 최근에 스태시된 변경 사항을 작업 디렉토리에 다시 적용합니다.

4. 특정 스태시 항목 적용하기

git stash apply stash@{0}

스태시 목록에서 특정 항목을 지정하여 적용할 수 있습니다.

5. 스태시 항목 삭제하기

git stash drop stash@{0}

스태시 목록에서 특정 항목을 삭제합니다.

6. 스태시를 적용하고 삭제하기

git stash pop

가장 최근에 스태시된 변경 사항을 적용하고, 해당 스태시 항목을 목록에서 삭제합니다.

스태시와 브랜치 변경

스태시 후 다른 브랜치로 전환하여 작업할 수 있습니다. 예를 들어, feature 브랜치에서 작업 중인 내용을 스태시하고 develop 브랜치로 전환한 후, 다시 원래 브랜치로 돌아와 스태시한 변경 사항을 적용하는 과정은 다음과 같습니다:

  1. 현재 변경 사항 스태시하기:
git stash
  1. 다른 브랜치로 전환하기:
git checkout develop
  1. 다른 작업 수행하기:
# develop 브랜치에서 필요한 작업을 수행
  1. 원래 브랜치로 돌아오기:
git checkout feature
  1. 스태시한 변경 사항 적용하기:
git stash pop

주의사항

  • 스태시를 사용하면 변경 사항이 임시로 저장되므로, 스태시한 내용을 잊어버리지 않도록 주의해야 합니다.
  • 스태시된 변경 사항은 저장소 전체에 적용되므로, 특정 브랜치에만 적용하려는 경우 주의가 필요합니다.

Git stash는 매우 유용한 도구로, 작업을 임시로 저장하고 다른 작업을 해야 할 때 유용하게 사용할 수 있습니다. 위의 기본 사용법을 숙지하면, Git 작업이 훨씬 수월해질 것입니다.

반응형

'Git' 카테고리의 다른 글

Git의 파일 관리 방식과 주요 명령어  (0) 2024.06.08
728x90
반응형

Git은 파일을 버전 관리하기 위해 여러 단계의 작업을 거칩니다. 각 단계는 특정한 역할과 기능을 가지고 있으며, 사용자가 변경 사항을 점진적으로 관리할 수 있게 합니다. 다음은 Git의 파일 관리 방식에 대한 간단한 설명입니다.

Git의 파일 관리 단계

  1. Working Directory (작업 디렉토리):

    • 사용자가 실제로 파일을 생성하고 수정하는 공간입니다.
    • 모든 변경 사항은 처음에는 작업 디렉토리에 반영됩니다.
  2. Staging Area (스테이징 영역):

    • 커밋을 위한 준비 단계입니다.
    • git add 명령어를 사용하여 변경된 파일을 스테이징 영역에 추가합니다.
    • 스테이징 영역에 있는 파일들만이 다음 커밋에 포함됩니다.
    • 이 영역을 통해 어떤 변경 사항을 커밋에 포함시킬지 선택할 수 있습니다.
  3. Repository (저장소):

    • 실제로 커밋된 데이터가 저장되는 공간입니다.
    • git commit 명령어를 사용하여 스테이징 영역에 있는 변경 사항을 저장소에 커밋합니다.
    • 저장소는 로컬 저장소와 원격 저장소로 나뉩니다.
      • 로컬 저장소: 사용자의 로컬 컴퓨터에 저장되는 저장소입니다.
      • 원격 저장소: GitHub, GitLab 등과 같은 원격 서버에 저장되는 저장소입니다. git push 명령어를 사용하여 로컬 저장소의 변경 사항을 원격 저장소에 업로드합니다.

Git의 파일 관리 단계를 도식화하면 다음과 같습니다:

Working Directory -> Staging Area -> Repository

주요 명령어

  • git status:

    • 현재 작업 디렉토리와 스테이징 영역의 상태를 보여줍니다.
    • 어떤 파일이 변경되었고, 어떤 파일이 스테이징 되었는지 확인할 수 있습니다.
  • git add <file>:

    • 작업 디렉토리에서 변경된 파일을 스테이징 영역에 추가합니다.
    • <file> 대신 .를 사용하면 모든 변경된 파일을 스테이징 영역에 추가할 수 있습니다.
  • git commit -m "commit message":

    • 스테이징 영역에 있는 변경 사항을 로컬 저장소에 커밋합니다.
    • 커밋 메시지를 통해 변경 사항에 대한 설명을 추가할 수 있습니다.
  • git push:

    • 로컬 저장소의 커밋된 변경 사항을 원격 저장소에 업로드합니다.
  • git pull:

    • 원격 저장소의 변경 사항을 로컬 저장소로 가져옵니다.
    • 원격 저장소와 로컬 저장소를 동기화할 때 사용합니다.

파일 삭제 명령어

  • git rm:

    • 파일을 작업 디렉토리와 스테이징 영역에서 삭제합니다.

    • 다음 커밋에서 파일이 제거됩니다.

    • 사용 예:

      git rm <file>
  • git rm --cached:

    • 파일을 스테이징 영역에서만 제거하고 작업 디렉토리에는 그대로 둡니다.

    • 다음 커밋에서 파일이 제거되지만, 작업 디렉토리에서는 삭제되지 않습니다.

    • 주로 .gitignore에 추가한 파일을 제거할 때 사용합니다.

    • 사용 예:

      git rm --cached <file>

예시

  1. 파일 생성 및 수정:
echo "Hello, World!" > example.txt
  1. 파일 추가:
git add example.txt
  1. 변경 사항 커밋:
git commit -m "Add example.txt with greeting message"
  1. 원격 저장소로 푸시:
git push origin main
  1. 파일 삭제 (작업 디렉토리와 스테이징 영역에서 삭제):
git rm example.txt
git commit -m "Remove example.txt"
git push origin main
  1. 파일 스테이징 영역에서만 삭제 (작업 디렉토리에는 남아있음):
echo "example.txt" >> .gitignore
git rm --cached example.txt
git commit -m "Stop tracking example.txt"
git push origin main

이와 같은 방식으로 Git은 단계별 파일 관리를 통해 사용자가 파일의 버전을 체계적으로 관리할 수 있도록 도와줍니다. Git의 다양한 명령어를 활용하여 파일을 효율적으로 관리하고 버전 관리를 할 수 있습니다.

반응형

'Git' 카테고리의 다른 글

Git Stash 사용법 정리  (0) 2024.06.23