본문 바로가기
멋쟁이사자처럼 동아리/Git

Git 섹션 7 "인프런" -PlusUltraCode-

by PlusUltraCode 2024. 7. 19.

Git 활용 가이드: hunk와 stash, commit 변경 및 rebase

hunk란?

hunk는 Git에서 바뀐 부분 하나하나를 의미합니다. 변경된 코드의 덩어리를 나타냅니다.

git add -p

명령어 $ git add -p는 변경사항을 하나씩 선택하여 추가할지 결정할 수 있게 해줍니다. 명령어를 입력하면 y, n, q, a, d 등의 옵션이 나옵니다.

  • y: 변경사항을 스테이징 영역에 추가
  • n: 변경사항을 스테이징 영역에 추가하지 않음
  • q: 종료
  • a: 남은 모든 변경사항을 추가
  • d: 남은 모든 변경사항을 추가하지 않음

변경사항 확인하고 commit 하기

변경사항을 확인하고 커밋할 때는 다음 명령어를 사용합니다.

 
$ git commit -v

오류 수정 요청 상황

누군가가 급하게 오류를 수정해달라고 요청하는 경우, 지금 하던 작업을 commit하지 않고 임시로 저장할 때 stash를 사용합니다.

 
$ git stash

이 명령어는 현재 작업 내용을 스택에 저장합니다.

작업을 끝내고 다시 해당 브랜치로 돌아와서 다음 명령어를 사용합니다.

 
$ git stash pop

구체적인 stash 사용법

 
$ git stash -p

이 명령어를 사용하면 변경된 내용을 y 또는 n으로 선택할 수 있게 됩니다.

메시지를 함께 남기려면 다음과 같이 합니다.

 
$ git stash -m "Add Stash"

저장된 stash 리스트를 확인하려면

 
$ git stash list

특정 stash를 적용하려면

 
$ git stash apply stash@{0}

stash를 삭제하려면

 
$ git stash drop stash@{1}

commit 한 내용 수정하기

commit 메시지를 수정하려면 다음 명령어를 사용합니다.

 
$ git commit --amend

수정 창이 열리면 메시지를 바꿔줍니다.

작업을 지난 commit에 포함시키고 싶다면

 
$ git add . $ git commit --amend

또는

 
$ git commit --amend -m "new message"

더 나아가서

 
$ git commit -a --amend -m "new message"

이전 commit 수정 및 삭제

이전 commit을 수정하거나 삭제하려면 다음 명령어를 사용합니다.

 
$ git rebase -i 1c799ad80474233b6cc40965a780df667d86b5a0

pick을 r로 바꾸면 커밋 메시지 변경이 가능합니다.

  • e: 수정
  • d: 삭제
  • s: 이전 커밋에 합치기

두 개의 커밋을 하나씩 분리하기

이전 커밋 해시를 복사해서 다음 명령어를 실행합니다.

 
$ git rebase -i <commit_hash>

분리하고 싶은 곳에 pick 대신 e를 사용합니다.

 
$ git reset HEAD~

파일을 다시 add하고 각각 commit 합니다.

 
$ git add file-3.txt $ git add file-4.txt $ git commit -m "message for file-3" $ git commit -m "message for file-4"

마무리로 rebase를 계속 진행합니다.

 
$ git rebase --continue

이렇게 하면 Git에서 다양한 상황에 맞춰 작업을 유연하게 관리할 수 있습니다.