(git & GitHub) Manage Commits Like a Pro

Mirrer·2022년 5월 9일
0

git & GitHub

목록 보기
7/15
post-thumbnail

Commit Message Convention

Commit Message Convention은 커밋 메세지를 작성하는 방식을 합의

기본적으로 commit한 단위의 작업을 하나의 버전에 내용파악이 가능한 메세지와 함께 commit 하는것이 올바른 방법이다.

Commit Message Conventioncommit메세지를 작성하는 방식을 팀원끼리 합의한 것을 의미한다.

Commit Message Convention은 다음 양식을 참고한다.


작성 방식

type: subject

body (optional)
...
...
...

footer (optional)
feat: 압축파일 미리보기 기능 추가

사용자의 편의를 위해 압축을 풀기 전에
다음과 같이 압축파일 미리보기를 할 수 있도록 함
 - 마우스 오른쪽 클릭
 - 윈도우 탐색기 또는 맥 파인더의 미리보기 창

Closes #125

작성 방식의 구성요소는 다음과 같다.

  • Type : 작업의 형태
Type설명
feat새로운 기능 추가
fix버그 수정
docs문서 수정
style공백, 세미콜론 등 스타일 수정
refactor코드 리팩토링
perf성능 개선
test테스트 추가
chore빌드 과정 또는 보조 기능(문서 생성기능 등) 수정
  • Subject : 커밋의 작업 내용을 간단하게 설명
  • Body : 긴 설명이 필요할 때 작성
  • Footer : Breaking Point, 특정 이슈 해결 작업

hunk

Hunk는 파일전체가 아닌 부분적으로 변경한 변경사항의 단위

기존의 git add .방식은 파일 단위로 수행했다.

하지만 하나의 파일 안에서 부분적으로 변경할 부분이 있다면 기존의 방식은 불편하다.

그래서 아래 명령어를 사용하면 변경사항을 단위로 수행할 수 있다.

이 때 변경사항의 단위를 Hunk라고 한다.

git add -p

기존 파일을 수정하여 위 명렁어를 입력하면 다음과 같은 결과가 출력된다.

이 때 옵션 설명을 보려면 ?입력하고, Hunk를 선택하려면 y 또는 n을 입력한다.

y를 입력하여 다음 Hunk를 확인해보면 다음과 같다.

이처럼 위 명령어를 사용하면 한 파일에서의 변경사항을 Hunk단위로 나누어 부분적으로 확인하여 처리할 수 있다.

Hunk를 모두 처리한 뒤 아래 명령어로 변경사항을 확인하고 커밋한다.

git commit -v

Stash

Stash는 급한 작업으로 인해 기존 작업을 다른 공간에 잠시 이동

Stash는 아직 마무리하지 않은 작업을 Stack에 잠시 저장할 수 있도록 하는 명령어다.

commit은 기본적으로 특정 작업을 마무리한 뒤 commit하는 것이 올바른 방법이지만 기존 작업을 미뤄두고 급한 작업을 먼저 처리해야되는 상황이 있다.

이 때 Stash를 사용하면 아직 완료하지 않은 일을 commit하지 않고 나중에 다시 꺼내와 작업할 수 있다.

사용 방법

  • 기존 작업을 이동
git stash
  • 기존 작업을 원하는 시점, 브랜치에 다시 적용
git stash pop
  • 부분적으로 stash
git stash -p
  • 메시지와 함께 stash
git stash -m 'Add Stash3'
  • stash목록 확인 (리스트상의 번호apply, drop, pop 가능)
git stash list

사용법 정리


명령어설명비고
git stash현 작업들 치워두기끝에 save 생략
git stash apply치워둔 마지막 항목(번호 없을 시) 적용끝에 번호로 항목 지정 가능
git stash drop치워둔 마지막 항목(번호 없을 시) 삭제끝에 번호로 항목 지정 가능
git stash pop치워둔 마지막 항목(번호 없을 시) 적용 및 삭제apply + drop
git stash branch (브랜치명)새 브랜치를 생성하여 pop충돌사항이 있는 상황 등에 유용
git stash clear치워둔 모든 항목들 비우기

Amend

Amend는 마지막 커밋메시지를 수정

Amend는 마지막 커밋 위에 새로운 내용을 덮어 저장하는 기능이다.

한글 문서에서 저장 기능은 파일 안에 새로운 내용으로 저장을 한다.

Amend는 한글 문서의 저장 기능과 유사하다.


사용 방법

  • 커밋 메시지 변경
git commit --amend

이후 에디터를 통해 커밋 메시지 변경
  • 커밋 변화 추가
추가할 작업 수행
	  :
      :
git add .
git commit --amend

이후 에디터를 통해 커밋 메시지 변경
  • 커밋 메시지 한 줄로 변경
git commit --amend -m 'Add members to Panthers and Pumas'

git rebase -i

git rebase -i은 과거 커밋 내역을 다양하게 수정

git rebase -i의 옵션을 따로 설정하여 과거에 커밋했던 내역을 다양한 방법으로 수정할 수 있다.

기본적인 명령어 사용방법은 다음과 같다.

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

옵션 종류

`git rebase -i (대상 바로 이전 커밋)`명령어를 터미널에 입력하면 에디터를 통해 옵션을 선택할 수 있다.

초깃값은 p(pick)이며 이외에 선택할 수 있는 옵션의 종류는 다음과 같다.


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

참고 자료

Book - Git
Do it! 지옥에서 온 문서 관리자 깃 & 깃허브 입문

profile
memories Of A front-end web developer

0개의 댓글