Git_[18] commit에 모든것.

Leejaegun·2025년 1월 30일

Git

목록 보기
22/32

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 같은 타입은 많이 사용되지 않을 수도 있음 😆

Git Emoji 사용

이 사이트를 활용하면 MZ스럽게 깔끔하고 감성적인 Git 커밋을 작성할 수 있습니다! 😎
하지만 몇 번 쓰다 보면 정신이 사나워서 안 쓸 수도... 😂
그래도 재미있으니까 한 번 시도해보는 것도 좋습니다!

git stash

Git Stash 사용법 정리

개발 중 갑자기 급한 요청이 들어올 때, 현재 작업을 보관하고 다른 작업을 먼저 수행할 수 있습니다.

예제

  1. stash.yaml 파일을 새로 만듦
  2. git add stash.yaml → 스테이징 영역으로 이동
  3. 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 명령어 정리

명령어설명비고
git stash현 작업을 stash로 이동끝에 save 생략 가능
git stash applystash된 마지막 항목(번호 없을 시) 적용끝에 번호로 항목 지정 가능
git stash dropstash된 마지막 항목(번호 없을 시) 삭제끝에 번호로 항목 지정 가능
git stash popstash된 마지막 항목 적용 후 삭제apply + drop 기능
git stash branch (브랜치명)새 브랜치를 생성 후 pop충돌 사항이 있는 상황에서 유용
git stash clearstash된 모든 항목 삭제

Git Commit 메시지 수정 방법

개발을 하다 보면 커밋 메시지를 잘못 입력하는 경우가 있습니다.
이럴 때 git commit --amend 명령어를 사용하여 메시지를 수정할 수 있습니다.

1. 마지막 커밋 메시지 수정하기

방법 1: 기본 방식 (vim 사용)

터미널에서 아래 명령어를 입력하면 자동으로 vim 편집기가 열립니다.

git commit --amend

이후 메시지를 수정한 뒤, :wq를 입력하여 저장하고 종료하면 됩니다.

방법 2: 한 줄 명령어로 수정하기 (vim 없이)

vim에 들어가는 것이 귀찮다면, 아래 명령어를 사용하여 바로 수정할 수 있습니다.

git commit --amend -m "수정할 메시지"

예제:

git commit --amend -m "Add new feature"

이렇게 하면 기존 커밋 메시지가 "Add new feature"로 변경됩니다.

Git 과거 커밋 수정, 삭제, 병합

과거 커밋을 수정하거나 삭제, 병합하려면 git rebase -i (대상 이전 커밋) 명령어를 사용하면 됩니다.

1. git rebase -i로 커밋 수정하기

아래 명령어를 실행하면 특정 커밋을 선택적으로 수정할 수 있습니다.

git rebase -i (대상 이전 커밋)

실행하면 vim 편집기가 열리며, 기본적으로 모든 커밋이 pick 상태로 표시됩니다.원하는 커밋의 pick을 아래 명령어 중 하나로 변경하면 됩니다.

명령어 설명

명령어설명
p, pick커밋 그대로 두기
r, reword커밋 메시지 변경
e, edit수정을 위해 정지
d, drop커밋 삭제
s, squash이전 커밋에 합치기

2. 특정 커밋 수정하기 (예제)

🔹 4번째 커밋을 수정하려면?
대상 커밋의 이전 커밋 SHA 값을 확인
git log 또는 Sourcetree에서 3번째(직전) 커밋의 SHA 값을 확인합니다.
예: 73aa9ff62c109c7e1718e0ca503fbaf7d918011c

인터랙티브 리베이스 실행

git rebase -i 73aa9ff62c109c7e1718e0ca503fbaf7d918011c

수정할 커밋의 pick을 r, e, d, s 중 하나로 변경

변경 후 :wq 입력하여 저장 후 종료

커밋이 정상적으로 변경되었는지 확인

3. 하나의 커밋을 두 개로 나누기

만약 하나의 커밋에 두 개의 작업이 포함되어 있어 두 개의 커밋으로 분리하고 싶다면 다음 단계를 따릅니다.

🔹 커밋 분리 방법
인터랙티브 리베이스 실행

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.
profile
Lee_AA

0개의 댓글