기본 명령어
git init
git remote add origin [repo_url]
git clone [repo_url]
git status
git add index.html
git add *
git add .
git add -A
git commit -am "commit_message"
git commit -m "commit_message"
git commit -m "message 1
message 2
message 3
...
message last"
git commit --amend -m "edit commit_message"
git branch
git branch [branch]
git checkout [branch]
git checkout -b [branch]
git checkout -b [branch] origin/[branch]
git branch -d [branch]
git branch -a
git push
git push origin master
git push -u origin master
git pull
git pull origin master
git log
git log -p
git log --graph
git reflog
git diff
git diff HEAD
git diff [commit_ID] -- [파일 경로]
git merge [branch]
git merge --no--ff [branch]
git reset 옵션 [commig_hash]
git revert [commig_hash]
git stash
git stash apply
브랜치 생성하여 작업하고 공통 브랜치에서 변경사항 다운받기
git checkout -b [branch]
git status
git add .
git commit -m "commit_message"
git push origin [branch]
git checkout main
git pull
git merge [branch]
git checkout [branch]
git add .
git commit -m "commit_message"
git push -u origin main
git push 가능
좋은 커밋 메시지를 작성하는 7가지 규칙
- 주제와 본문을 빈줄로 분리하기
- 주제는 50자로 제한하기
- 주제의 첫 글자는 대문자로 쓰기
- 주제에 마침표를 넣지 않기
- 주제는 명령으로 작성하기
- 본문은 72자에 줄바꿈하기
- how 보단 what과 why를 설명하기
커밋 메시지의 구조
$ <type>: <subject> -- 헤더 (주제)
<blank> -- 빈줄
<body> -- 본문(생략 가능)
<blank> -- 빈줄
<footer> -- 바닥글/꼬리말
subject의 type은 커밋의 성격을 나타낸다.
type명 |
설명 |
feat |
새로운 기능 |
fix |
버그 수정 |
docs |
문서 수정 |
style |
코드 포맷 변경, 세미 콜론 누락, 코드 수정이 없는 경우 |
design |
css 등 사용자 UI 디자인 변경 |
test |
테스트 코드, 리펙토링 테스트 코드 추가 |
refactor |
프로덕션 코드 리펙토링 |
build |
빌드 관련 파일 수정사항 |
chore |
빌드 테스트 업데이트, 패키지 매니저를 설정하는 경우 |
ci |
CI관련 설정 수정 |
rename |
파일/ 폴더명을 수정하거나 옮기기만 하는 경우 |
remove |
파일을 삭제만 하는 경우 |
!BREAKING CHANGE |
커다란 API 변경 |
!HOTFIX |
치명적인 버그를 고치는 경우 |
바닥글/꼬리말
- 꼬리말은 "type: #이슈 번호" 형식
- 이슈 번호는 쉼표(,)로 구분
type명 |
설명 |
Fixes |
이슈 수정중 (미해결) |
Resolves |
이슈 수정완료 |
Ref |
참고할 이슈가 있을 때 |
Related to |
해당 커밋에 관련된 이슈번호 (미해결) |
커밋 구조를 적용한 예시
Feat: "쪽지알림 On/Off 기능 추가" (#123)
쪽지알림을 On/Off 할 수 있도록 기능을 추가함
Resolves : #123, #456
Related to: #100