코드 수정중인데 코드가 PR되었을 때 (git stash)

Nevgiveup·2025년 2월 20일
0

github

목록 보기
1/1
post-thumbnail

그림 출처: https://sysxplore.substack.com/p/what-is-git-stash

PR(풀 리퀘스트)이 머지되거나 업데이트되었을 때, pull을 하면 작업 중인 변경 사항이 날아갈 가능성이 있는 상황이 있습니다.

0. 결론

  • git stash 임시저장
  • git pull --rebase origin main 업데이트
  • git stash pop 임시저장 적용

작업을 안전하게 유지하는 방법

1. 변경 사항을 커밋하거나 스태시 하기

PR 업데이트 전에 작업이 날아가는 걸 방지하려면 커밋을 하거나 git stash로 임시 저장하는 게 좋습니다.

아직 커밋할 준비가 안 되었다면 스태시하기
git stash를 하면 현재 변경 사항이 임시로 저장되고 워킹 디렉터리는 깨끗한 상태가 되니 놀라지 마세요.

임시 저장하기
git stash

커밋 하기 (커밋 후에는 충돌을 해결할 가능성 있음)

커밋하기
git add .
git commit -m "add feature"

2. 업데이트된 PR 내용 가져오기 (rebase or merge)

1번째나 2번째 방법으로 해주시면 됩니다.

1. git pull --rebase origin main (pull 가져오기)

git pull --rebase origin main  # (혹은 master, develop 등)
  • 내 변경 사항을 PR 업데이트 위에 재적용함.
  • 충돌이 나면 해결한 후 git rebase --continue 실행.

리베이스는 내 커밋을 최신 업데이트 위에 올려서 히스토리를 일직선으로 유지하게 도와주며, 머지 커밋이 생성되지 않습니다.

2. git pull (머지)

git pull origin main
  • 기존 변경 사항과 PR 업데이트 내용을 병합.
  • 필요하면 충돌을 해결하고 커밋.

3. 스태시 사용 시 내 작업 다시 적용

스태시를 사용했으면 둘중 하나로 스태시를 적용시켜 주시면 됩니다.

임시저장 꺼내기
git stash pop  # 스태시에서 꺼내서 다시 적용

혹은

임시저장 적용하기
git stash apply  # 스태시를 적용하지만, 삭제되지는 않음.

4. 결론

  • git stash

  • git pull --rebase origin main

  • git stash pop

  • 충돌나면 빠르게 reset 해줍시다...

profile
while( true ) { study(); }

0개의 댓글