본문 바로가기
Appendix/Git & GitHub

[Git] Git 정리

by cogito21_python 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