[Git] Git 심화
커밋 관리하기
- 하나의 커밋에는 한 단위의 작업을 넣습니다.
- 한 작업을 여러 버전에 걸쳐 커밋하지 않습니다.
- 여러 작업을 한 버전에 커밋하지 않습니다.
- 커밋 메시지는 어떤 작업이 이뤄졌는지 알아볼 수 있도록 작성합니다.
커밋 메시지 컨벤션
널리 사용되는 커밋 메시지 작성방식은 아래와 같습니다.
type: subject
body (optional)
...
...
...
footer (optional)
- Subject : 커밋의 작업 내용 간략히 설명
- Body : 길게 설명할 필요가 있을 시 작성
- Footer : Breaking Point 가 있을 때, 특정 이슈에 대한 해결 작업일 때
내용을 확인하며 hunk 별로 스테이징
git add -p
위 명령어를 사용하면 동일한 파일 내에서도 따로 스테이징을 관리할 수 있습니다.
git commit -v
해당 명령어로 변경사항을 확인하면서 커밋할 수 있습니다.
stash
작업을 하는 도중 해당 작업을 커밋하지 않고 저장하는 방법입니다.
git stash
그리고 원하는 시점, 브랜치에 다시 적용할 수 있습니다.
git stash pop
-p
옵션으로 원하는 것만 stash 할 수도 있습니다.
git stash -p
-m
옵션으로 메시지와 함께 stash 할 수 있습니다.
git stash -m "Add stash"
stash 목록보기
git stash list
명령어 | 설명 | 비고 |
git stash | 현 작업들 치워두기 | 끝에 save 생략 |
git stash apply | 치워둔 마지막 항목(번호 없을 시) 적용 | 끝에 번호로 항목 지정 가능 |
git stash drop | 치워둔 마지막 항목(번호 없을 시) 삭제 | 끝에 번호로 항목 지정 가능 |
git stash pop | 치워둔 마지막 항목(번호 없을 시) 적용 및 삭제 | apply + drop |
💡 git stash branch (브랜치명) | 새 브랜치를 생성하여 pop | 충돌사항이 있는 상황 등에 유용 |
git stash clear | 치워둔 모든 항목들 비우기 |
## 커밋 수정하기
커밋 메시지를 변경하려면 다음과 같이 명령어를 작성합니다.
git commit --amend
만약 커밋 후 다른 스테이징 파일을 추가하고 싶을 때도 동일하게 사용합니다.
커밋 메시지까지 추가하려면 아래와 같이 사용합니다.
git commit --amend -m 'commit message'
과거 커밋 수정, 삭제, 병합, 분할
과거 커밋을 삭제, 병합, 분할하기 위해서는 rebase 를 사용합니다.
git rebase -i (대상 바로 이전 커밋)
명령어 | 설명 |
---|---|
p, pick | 커밋 그대로 두기 |
r, reword | 커밋 메시지 변경 |
e, edit | 수정을 위해 정지 |
d, drop | 커밋 삭제 |
s, squash | 이전 커밋에 합치기 |
댓글남기기