git 은 commit 할때 -m 을 붙여서 다양하게 적을 수 있습니다.그런데 이를 하기 위해서는 팀원들끼리 convention을 정해야 합니다. 그래야지 정확하게 팀원들끼리 각 팀원이 어떤것을 했는지 명확하게 파악할 수 있기 때문입니다.
길게 하면 이렇습니다.
type: subject
body (optional)
...
...
...
footer (optional)
feat: 압축파일 미리보기 기능 추가
사용자의 편의를 위해 압축을 풀기 전에
다음과 같이 압축파일 미리보기를 할 수 있도록 함
- 마우스 오른쪽 클릭
- 윈도우 탐색기 또는 맥 파인더의 미리보기 창
Closes #125
하지만 보통은 이렇게까지 길게 안하고 짧고 굵개 합니다.
[feat]#tag 기능추가함
ex) [feat]#7 "Add blabla"
속성타입으로는 이렇게 많이 적습니다.
| 타입 | 설명 |
|---|---|
| feat | 새로운 기능 추가 |
| fix | 버그 수정 |
| docs | 문서 수정 |
| style | 공백, 세미콜론 등 스타일 수정 |
| refactor | 코드 리팩토링 |
| perf | 성능 개선 |
| test | 테스트 추가 |
| chore | 빌드 과정 또는 보조 기능(문서 생성 기능 등) 수정 |
* 참고: perf, chore 같은 타입은 많이 사용되지 않을 수도 있음 😆
이 사이트를 활용하면 MZ스럽게 깔끔하고 감성적인 Git 커밋을 작성할 수 있습니다! 😎
하지만 몇 번 쓰다 보면 정신이 사나워서 안 쓸 수도... 😂
그래도 재미있으니까 한 번 시도해보는 것도 좋습니다!
개발 중 갑자기 급한 요청이 들어올 때, 현재 작업을 보관하고 다른 작업을 먼저 수행할 수 있습니다.
stash.yaml 파일을 새로 만듦git add stash.yaml → 스테이징 영역으로 이동git stash → stash 영역으로 이동 (숨김 처리)git stash -p → Hunk 단위로 적용 가능git stash -m 'Add Stash3' → 메시지를 추가 가능git stash list → stash 목록 조회git stash pop → 마지막 stash를 적용하면서 제거git stash apply stash@{0} → 특정 stash를 불러오기 (apply는 stash 목록에서 제거하지 않음)git stash drop stash@{0} → 특정 stash 삭제git stash pop stash@{0} → 특정 stash 적용 + 삭제| 명령어 | 설명 | 비고 |
|---|---|---|
git stash | 현 작업을 stash로 이동 | 끝에 save 생략 가능 |
git stash apply | stash된 마지막 항목(번호 없을 시) 적용 | 끝에 번호로 항목 지정 가능 |
git stash drop | stash된 마지막 항목(번호 없을 시) 삭제 | 끝에 번호로 항목 지정 가능 |
git stash pop | stash된 마지막 항목 적용 후 삭제 | apply + drop 기능 |
git stash branch (브랜치명) | 새 브랜치를 생성 후 pop | 충돌 사항이 있는 상황에서 유용 |
git stash clear | stash된 모든 항목 삭제 |
개발을 하다 보면 커밋 메시지를 잘못 입력하는 경우가 있습니다.
이럴 때 git commit --amend 명령어를 사용하여 메시지를 수정할 수 있습니다.
vim 사용)터미널에서 아래 명령어를 입력하면 자동으로 vim 편집기가 열립니다.
git commit --amend
이후 메시지를 수정한 뒤, :wq를 입력하여 저장하고 종료하면 됩니다.
vim에 들어가는 것이 귀찮다면, 아래 명령어를 사용하여 바로 수정할 수 있습니다.
git commit --amend -m "수정할 메시지"
예제:
git commit --amend -m "Add new feature"
이렇게 하면 기존 커밋 메시지가 "Add new feature"로 변경됩니다.
과거 커밋을 수정하거나 삭제, 병합하려면 git rebase -i (대상 이전 커밋) 명령어를 사용하면 됩니다.
git rebase -i로 커밋 수정하기아래 명령어를 실행하면 특정 커밋을 선택적으로 수정할 수 있습니다.
git rebase -i (대상 이전 커밋)
실행하면 vim 편집기가 열리며, 기본적으로 모든 커밋이 pick 상태로 표시됩니다.원하는 커밋의 pick을 아래 명령어 중 하나로 변경하면 됩니다.
명령어 설명
| 명령어 | 설명 |
|---|---|
p, pick | 커밋 그대로 두기 |
r, reword | 커밋 메시지 변경 |
e, edit | 수정을 위해 정지 |
d, drop | 커밋 삭제 |
s, squash | 이전 커밋에 합치기 |
🔹 4번째 커밋을 수정하려면?
대상 커밋의 이전 커밋 SHA 값을 확인
git log 또는 Sourcetree에서 3번째(직전) 커밋의 SHA 값을 확인합니다.
예: 73aa9ff62c109c7e1718e0ca503fbaf7d918011c
인터랙티브 리베이스 실행
git rebase -i 73aa9ff62c109c7e1718e0ca503fbaf7d918011c
수정할 커밋의 pick을 r, e, d, s 중 하나로 변경
변경 후 :wq 입력하여 저장 후 종료
커밋이 정상적으로 변경되었는지 확인
만약 하나의 커밋에 두 개의 작업이 포함되어 있어 두 개의 커밋으로 분리하고 싶다면 다음 단계를 따릅니다.
🔹 커밋 분리 방법
인터랙티브 리베이스 실행
git rebase -i (직전 커밋 SHA)
분리할 커밋의 pick을 edit (e)로 변경
리베이스 진행 후, 다음 명령어 실행
git reset HEAD~ # 커밋을 해제 (파일들은 스테이징 해제됨)
현재 상태 확인
git status
→ 변경된 파일이 스테이징 해제된 상태로 표시됨
파일별로 개별 커밋 진행
git add (파일1)
git commit -m "파일1 수정 사항"
git add (파일2)
git commit -m "파일2 수정 사항"
리베이스 재개
git rebase --continue.