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에서 다양한 상황에 맞춰 작업을 유연하게 관리할 수 있습니다.
'멋쟁이사자처럼 동아리 > Git' 카테고리의 다른 글
Git 섹션 9 Git의 Tag 달기 및 관리 "인프런" -PlusUltraCode- (0) | 2024.07.20 |
---|---|
Git 섹션 8 관리되지 않은 파일 삭제 "인프런" -PlusUltraCode- (0) | 2024.07.20 |
섹션 6 Git 보다 잘 사용하기 "인프런" -PlusUltraCode- (0) | 2024.07.18 |
섹션 5 세가지 저장공간과 과거로 이동하 (0) | 2024.07.13 |
섹션 4 원격저장소란? "인프런" -PlusUltraCode- (0) | 2024.07.13 |