1. 어떻게 커밋하는게 좋을까요?
1) 작업을 커밋할 때 권장사항
- 하나의 커밋에는 한 단위의 작업을 넣도록 한다.
- 한 작업을 여러 버전에 걸쳐 커밋하지 않는다.
- 여러 작업을 한 버전에 커밋하지 않는다.
- 커밋 메시지는 어떤 작업이 이뤄졌는지 알아볼 수 있도록 작성한다.
2. 보다 세심하게 스테이징하고 커밋하기
1) 내용 확인하며 hunk별로 스테이징하기
git add -p
: 한 파일에서의 여러 변화를 선택적으로 스테이징 할 수 있다.
2) 변경사항을 확인하고 커밋
git commit -v
: 변경사항을 확인하고 커밋할 수 있다.
git diff --staged
: 스테이징에 올라간 변경사항을 확인할 수 있다.
3. 커밋하기 애매한 변화 치워두기
명령어 | 설명 | 비고 |
---|
git stash | 현 작업들 치워두기 | 끝에 save 생략 |
git stash list | stash된 목록들 확인 | |
git stash apply | 치워둔 마지막 항목(번호 없을 시) 적용 | 끝에 번호로 항목 지정 가능 |
git stash drop | 치워둔 마지막 항목(번호 없을 시) 삭제 | 끝에 번호로 지정 가능 |
git stash pop | 치워둔 마지막 항목 적용 및 삭제 | apply + drop |
git stash branch 브랜치명 | 새 브랜치를 생성하여 pop | 충돌사항이 있는 상황 등에 유용 |
git stash clear | 치워둔 모든 항목들 비우기 | |
4. 커밋 수정하기
git commit --amend
: 마지막 커밋 수정
1) 커밋에 변화 추가하고 메시지 변경
- 변동사항 스테이지(
git add
)
git commit --amend
로 에디터 열어 커밋 메시지 변경
- 적용
git commit --amend -m "커밋메시지"
: 에디터 호출 없이 한줄로 커밋
git commit -a --amend -m "커밋메시지"
: 스테이지까지 한번에 할 수 있다.
5. 과거의 커밋들을 수정, 삭제, 병합, 분할하기
git rebase -i 커밋해시
: 과거 커밋 내역을 다양한 방법으로 수정할 수 있다. 수정할 커밋 이전의 커밋 해시를 입력한다.
명령어 | 설명 |
---|
p, pick | 커밋 그대로 두기 |
r, reword | 커밋 메시지 변경 |
e, edit | 수정을 위해 정지 |
d, drop | 커밋 삭제 |
s, squash | 이전 커밋에 합치기 |
git rebase -i 커밋해시
- pick을 e로 변경
git reset HEAD~
입력
- 나눠서 커밋
git rebase --continue