제육's 휘발성 코딩
반응형

커밋 권장사항

  • 하나의 커밋에는 한 단위의 작업을 넣도록 합니다.
    • 한 작업을 여러 버전에 걸쳐 커밋하지 않습니다.
    • 여러 작업을 한 버전에 커밋하지 않습니다.
  • 커밋 메시지는 어떤 작업이 이뤄졌는지 알아볼 수 있도록 작성합니다.

커밋 컨벤션

type: subject

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

footer (optional)
  • 널리 사용되는 커밋 메시지 작성 방식이다.
feat: 압축파일 미리보기 기능 추가

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

Closes #125
  • 다음과 같이 사용한다. Footer 는 Breaking Point 가 있거나 특정 이슈에 대한 해결 작업일 때 작성한다.

Type 종류

image

Gitmoji

  • https://gitmoji.dev/ 해당 링크에서 깃모지(:mute:, :mag: 등)를 사용하여 커밋 내용을 꾸밀 수 있다.

세심하게 커밋하기

내용 확인하며 hunk별로 스테이징하기

Tigers 변경

  • manager: Thanos
  • coach: Ronan
  • 새 members: Gamora, Nebula

Leopards 변경

  • manager: Peter
  • coach: Rocket
  • 새 members: Drax, Groot

image

git add -p
  • 해당 명령어로 hunk 별 스테이징 진행
  • ?를 입력하여 옵션의 설명을 볼 수 있다.

image

  • hunk (하나의 변경 사항)마다 관리하기 때문에 일부만 스테이징 시킬 수 있다.
git commit -v 


# 변경 사항에 대한 커밋 메시지를 입력하십시오. '#' 문자로 시작하는
# 줄은 무시되고, 메시지를 입력하지 않으면 커밋이 중지됩니다.
#
# 현재 브랜치 main
# 브랜치가 'origin/main'에 맞게 업데이트된 상태입니다.
#
# 커밋할 변경 사항:
#    수정함:        leopards.yaml
#    수정함:        tigers.yaml
#
# 커밋하도록 정하지 않은 변경 사항:
#    수정함:        leopards.yaml
#    수정함:        tigers.yaml
#
# ------------------------ >8 ------------------------
# 위의 줄을 바꾸거나 지우지 마십시오.
# 아래 있는 내용은 모두 무시됩니다.
diff --git a/leopards.yaml b/leopards.yaml
index fbf3802..9b6f0b8 100644
--- a/leopards.yaml
+++ b/leopards.yaml
@@ -1,8 +1,8 @@
 team: Leopards

-manager: Nora
+manager: Peter

-coach : Lupi
+coach : Rocket

 members:
 - Linda
diff --git a/tigers.yaml b/tigers.yaml
index e66469d..a1d2572 100644
--- a/tigers.yaml
+++ b/tigers.yaml
@@ -11,5 +11,7 @@ members:
 - George
 - Tyler
 - Kim
+- Gamora
+- Nebula

 fetch : this
  • 해당 명령어는 변경사항을 확인하면서 커밋할 수 있다.
  • git diff --staged (스테이징 된 내용 정보) 와 커밋 메시지를 동시에 할 수 있는 기능이라고 보면 된다.

커밋하기 애매한 경우 (stash)

변경사항 만들기

team: Tomcats

coach: Apache
  • Tigers의 members에 Stash 추가
  • tomcats.yaml 추가 후 add
git stash
  • git stash save와 같은 방식으로 변경사항 저장된 모든 파일을 모두 모아 빼둔다.

image

  • 소스트리에서 stash에 모인 내용들을 확인할 수 있다.
git stash pop
  • 원하는 시점 또는 브랜치에 pop 을 통해 stash한 내용을 꺼내올 수 있다.

원하는 것만 stash

image

git stash -p
  • Leopards의 members에 Stash2 추가
  • Jaguars의 members에 Stash3 추가
  • 아래 명령어로 Stash2만 선택하여 스태시
git stash -m "Add Stash3"
  • 메시지와 함께 스태시

image

git stash list
  • 스태시의 목록 보기 (리스트 상의 번호로 apply, drop, pop 가능)
git stash branch stash-branch
  • stash 중인 내용을 stash-branch라는 새로운 브랜치를 생성하여 모두 pop하는 명령어

커밋 수정하기

커밋 메시지 변경

git commit --amend
  • Panthers의 members에 Hoki 추가하고 스테이지
  • 커밋 메시지: 횻홍
  • 해당 명령어로 에디터 열어 커밋 메시지 변경

커밋에 변화 추가

  • Pumas의 members에 Poki 추가하고 스테이지
  • git commit --amend로 마지막 커밋에 포함
  • 커밋 메시지 아무렇게나 변경

커밋 메시지 한 줄로 변경

git commit --amend -m 'Add members to Panthers and Pumas'

과거의 커밋 수정, 삭제, 병합, 분할하기

image

  • 다음과 같은 새로운 파일 예제를 보자.

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

image

  • 과거의 커밋 내역을 다양한 방법으로 수정할 수 있다.

image

  • git rebase -i (커밋해시) 를 사용하면 해당 커밋보다 미래의 모든 커밋 리스트들을 볼 수 있으며 기본적으로 pick으로 되어 있다.

image

  • 횻홍이라는 커밋 메시지의 상태를 r로 두고 :wq 하면 다음과 같은 화면이 나오면 수정할 커밋메시지를 입력할 수 있다.

image

  • 다음과 같이 뻘짓이라는 커밋 메시지를 삭제하고, 결전의 ~ 커밋을 스쿼시할 수 있다.

image

  • 스쿼시할 항목들이 다음과 같이 나오게 되며, 이 중에서 고르거나, 새롭게 수정하여 저장하면 된다.

image

  • edit을 사용하는 경우 다음과 같이 git reset HEAD^ (이동할 칸 부여) 후 git rebase --continue와 같이 사용한다.

본 포스팅은 '인프런 - 제대로 파는 Git & GitHub - by 얄코' 강의를 보고 정리한 내용입니다.

반응형
profile

제육's 휘발성 코딩

@sasca37

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 맞구독은 언제나 환영입니다^^