본문 바로가기
Appendix/Git & GitHub

[Git] Git 정리

by huginn30 2023. 10. 15.
반응형
 Index
 1. Git Concept
 2. Git CLI
 3. README.md
 4. Git Commit Message
 5. Markdown 
 6. Reference 

1. Git Concept

VCS(Version Control System)

- Centralized Version Control. ex) CVS

- Distributed Version Control. ex) Git, Mercurial

 

Git은 delta-based(변경된 것만 저장) version control이 아닌 stream of snapshots(프로젝트 전체 저장)

 

Concept

- Local Repository(Tree): Working Directory + Staging Area + .git Derectory(=Repository)

- - Working Directory: Untracked / Tracked(modified, unmodified), 프로젝트가 위치한 공간, 버전관리 대상이 위치한 공간

- - Staging Area(=index): git add 처리시 올라가는 공간, 다음 버전이 될 후보가 올라가는 공간

- - Repository Directory: git commit 처리시 올라가는 공간 (고유 hash 코드 /  message / author / date / time), 버전이 만들어지고 관리되는 공간

- Remote Repository

 

.git config 파일 구성요소

 

 

2. Git CLI

기본 설정

# git config 도움말
git config -h

# git config 내용 확인
git config --list

# 아이디/이메일 설정
git config --global user.name "아이디"           
git config --global user.email "이메일@이메일"

# 편집 모드
git config --global -e                          
git config --global core.editor "code --wait""  # 에디터로 편집 모드 열기    

# git config 부가 설정
git config --global core.autocrlf input/true    # 저장시 input(\n제거), true(\r제거)  
git config --global alias.단축키 명령어            # 단축키 설정

 

 

Git 명령어

git init

git add 

git commit 

git remote

git push
 
git status
 
git log --pretty=oneline --graph

git reflog

git reset

git revert

git checkout

git branch

 

 

3. README.md

# TITLE

##

##

##

1) 프로젝트 Description
✔ 프로젝트명
✔ 어떤 프로젝트인지 소개
✔ 디렉토리 구조

2) 프로젝트 정보
✔ 설치방법(Getting Started / Installation)
✔ 컴파일 방법, 사용 환경, 브라우저 서포트, 개발스택, 구현 목록(명세)
✔ 간단한 사용 방법 및 예제

3) 프로젝트 결과물
✔ 기능별 사진 / 영상
✔ 코드설명, 후기(짧고 간결하게 써야함, 내용이 길어질 경우 블로그에 작성한뒤 링크로 연결해주는게 좋다)

4) Contribute
✔ 다른 사람들이 코드에 Contribute하기 쉽도록 방법 설명
✔ 어떤 류의 Contribute를 원하는지 또는 Contributing 규칙 등을 적을 수도 있다.

5) LICENSE
✔ 라이선스 : 저작물의 수정 배포에 대한 권한이나 저작권들에 대한 조항들
✔ 보통 MIT License를 많이 사용하고 BSD 라이선스도 많이 사용한다

6) 외부리소스 정보
✔ 프로젝트에 포함된 외부 코드나 리소스 정보(각각의 출처 및 배포 라이선스)

7) Code Status

✔ Shield라는 것을 사용하여 [build | passing]과 같은 정보를 줄 수 있다.
✔ 프로젝트가 커질수록 도움이 되는 부분

 

4. Git Commit Message

Commit Message

- 버전을 설명하는 메시지

Type: Subject

Body

Footer

 

1) 커밋 유형 지정

  • FEAT : 새로운 기능의 추가
  • FIX: 버그 수정
  • DOCS: 문서 수정(추가, 수정, 삭제, README)
  • REFACTOR: 코드 리펙토링
  • STYLE: 스타일 관련 기능(코드 포맷팅, 세미콜론 누락, 코드 자체의 변경이 없는 경우)
  • Perf: 성능 개선
  • TEST: 테스트 코트, 리펙토링 테스트 코드 추가
  • CHORE: 빌드 업무 수정, 패키지 매니저 수정(ex .gitignore 수정 같은 경우)

2) 제목과 본문을 빈행으로 분리

3) Subject 규칙

  • 제목 행을 50자로 제한
  • 첫 글자는 대문자로 시작
  • 마지막 글자는 마침표 및 특수 기호 사용금지
  • 제목 행에 명령문을 사용
  • 간결하고 요점적으로 서술
  • 필요시 이슈 트래킹 번호 추가[#이슈번호]

4) Body 규칙

  • 선택사항이지만 최대한 상세히 작성
  • 내용은 어떻게 보다는 무엇을 왜 변경했는지 작성
  • 각줄의 길이는 72이내로 작성
  • 글머리 기호 사용가능(-, *)

5) footer 규칙

  • 선택사항이며, 이슈 트래킹을 위해 사용
  • "유형:: # 이슈 번호" 형식
  • 여러 개의 이슈 번호는 쉼표로 구분

 

5. Markdown

1) Heading(제목): # ~ ######

2) Line: ---

3) 강조: **bold**, *italic*, ~~strikethrough~~

4) quote: >, >>, >>>

5) list: *, -, 숫자.

6) link: [내용](링크)

7) image: ![내용](링크)

8) Table: |내용|내용|...|, |:--:|(정렬)

9) Code: '한 줄', ''' 여러줄 '''

10) <kbd> ... </kbd>

11) `한줄`, ```diff -삭제 +추가 ```

12) LaTex: $ inline 수식 $, $$ 수식 $$

+) GitHub Flavored Markdown: Task List: - [x] 내용, - [ ] 내용


Reference

(Git && GitHub)

[Docs: Git](https://git-scm.com/docs)
[Youtube: 드림코딩_깃, 깃허브 배우기](https://www.youtube.com/playlist?list=PLv2d7VI9OotQUUsgcTBHuy5vJkSgzVHL0)
[Book: 모두의 깃 & 깃허브](https://product.kyobobook.co.kr/detail/S000061450151)
[Book: 박미정의 깃 & 깃허브 입문](https://product.kyobobook.co.kr/detail/S000001953761)
[Docs: GitHub](https://docs.github.com/en/get-started/quickstart)
[Blog: Git 구조와 용어](https://haenny.tistory.com/338)

(README Template)

[Blog: DomPizzie GitHub](https://gist.github.com/DomPizzie/7a5ff55ffa9081f2de27c315f5018afc)
[Site: README Template](https://www.readme-templates.com/)
[Site: Make a README](https://www.makeareadme.com/)
[Site: readme.so](https://readme.so/)
[Blog: Bella.log](https://velog.io/@suyeon-hong/github-README-%ED%99%9C%EC%9A%A9%ED%95%98%EA%B8%B0)

(Commit Message Template)

[Blog: Danny의 iOS 컨닝페이퍼](https://ios-daniel-yang.tistory.com/109)
[Blog: step By step](https://richone.tistory.com/26)
[Site: Git Commit Message](https://udacity.github.io/git-styleguide/)

(Markdown)

[Docs: Markdown Guide](https://www.markdownguide.org/cheat-sheet/)
Blog: Heropy Tech](https://heropy.blog/2017/09/30/markdown/)

 

반응형

'Appendix > Git & GitHub' 카테고리의 다른 글

[GitHub] GitHub에서 Blog 만들기  (0) 2024.01.16
[Git] Windows에서 GitHub 연동  (0) 2024.01.13
[Git] MacOS(M2)에서 GitHub 연동  (0) 2024.01.13
[GitHub] GitHub 사용법  (0) 2023.10.15
[Git] Git-Flow  (0) 2023.10.15