반응형
커밋 권장사항
- 하나의 커밋에는 한 단위의 작업을 넣도록 합니다.
- 한 작업을 여러 버전에 걸쳐 커밋하지 않습니다.
- 여러 작업을 한 버전에 커밋하지 않습니다.
- 커밋 메시지는 어떤 작업이 이뤄졌는지 알아볼 수 있도록 작성합니다.
커밋 컨벤션
type: subject
body (optional)
...
...
...
footer (optional)
- 널리 사용되는 커밋 메시지 작성 방식이다.
feat: 압축파일 미리보기 기능 추가
사용자의 편의를 위해 압축을 풀기 전에
다음과 같이 압축파일 미리보기를 할 수 있도록 함
- 마우스 오른쪽 클릭
- 윈도우 탐색기 또는 맥 파인더의 미리보기 창
Closes #125
- 다음과 같이 사용한다. Footer 는
Breaking Point
가 있거나 특정 이슈에 대한 해결 작업일 때 작성한다.
Type 종류
Gitmoji
- https://gitmoji.dev/ 해당 링크에서 깃모지(:mute:, :mag: 등)를 사용하여 커밋 내용을 꾸밀 수 있다.
세심하게 커밋하기
내용 확인하며 hunk별로 스테이징하기
Tigers 변경
- manager:
Thanos
- coach:
Ronan
- 새 members:
Gamora
,Nebula
Leopards 변경
- manager:
Peter
- coach:
Rocket
- 새 members:
Drax
,Groot
git add -p
- 해당 명령어로 hunk 별 스테이징 진행
?
를 입력하여 옵션의 설명을 볼 수 있다.
- 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
와 같은 방식으로 변경사항 저장된 모든 파일을 모두 모아 빼둔다.
- 소스트리에서 stash에 모인 내용들을 확인할 수 있다.
git stash pop
- 원하는 시점 또는 브랜치에
pop
을 통해 stash한 내용을 꺼내올 수 있다.
원하는 것만 stash
git stash -p
- Leopards의 members에
Stash2
추가 - Jaguars의 members에
Stash3
추가 - 아래 명령어로
Stash2
만 선택하여 스태시
git stash -m "Add Stash3"
- 메시지와 함께 스태시
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'
과거의 커밋 수정, 삭제, 병합, 분할하기
- 다음과 같은 새로운 파일 예제를 보자.
git rebase -i (대상 바로 이전 커밋)
- 과거의 커밋 내역을 다양한 방법으로 수정할 수 있다.
git rebase -i (커밋해시)
를 사용하면 해당 커밋보다 미래의 모든 커밋 리스트들을 볼 수 있으며 기본적으로 pick으로 되어 있다.
횻홍
이라는 커밋 메시지의 상태를r
로 두고:wq
하면 다음과 같은 화면이 나오면 수정할 커밋메시지를 입력할 수 있다.
- 다음과 같이
뻘짓
이라는 커밋 메시지를 삭제하고,결전의 ~
커밋을 스쿼시할 수 있다.
- 스쿼시할 항목들이 다음과 같이 나오게 되며, 이 중에서 고르거나, 새롭게 수정하여 저장하면 된다.
edit
을 사용하는 경우 다음과 같이git reset HEAD^
(이동할 칸 부여) 후git rebase --continue
와 같이 사용한다.
본 포스팅은 '인프런 - 제대로 파는 Git & GitHub - by 얄코' 강의를 보고 정리한 내용입니다.
반응형