우측 상단 프로필 클릭
"Your repositories" 클릭
우측 상단 "New" 클릭
"Repository name"(github-practice) 작성 후 "Create repository" 클릭
- 레포지토리의 이름
- 레포지토리의 설명
- 공개 여부 (public/private)
- README (레포지토리의 얼굴인 README 파일)
- .gitignore (Git으로 트래킹하지 않을 파일들을 기록)
- license (프로젝트의 라이선스 설정)
생성된 레포지토리의 초기 화면
상단의 "Settings" 클릭
좌측의 "Collaborators" 클릭
패스워드 입력
"Add people" 클릭
팀원 username 혹은 email 입력
하단 버튼 클릭
수락 대기 상태
초대 완료
바탕 화면에 "github-practice" 폴더 생성
VSCode 실행 후 좌측 상단 "File" 클릭
"New Window" 클릭
새로 열린 VSCode 창에서 좌측 상단 "File" 클릭
"Open Folder..." 클릭
바탕 화면에서 "github-practice" 클릭 후 "폴더 선택" 클릭
좌측 상단의 "Folders" 아이콘 클릭
상단의 "Terminal" 클릭
"New Terminal" 클릭
하단 터미널에 git init 입력
좌측 상단의 "New File..." 클릭
README.md 입력
# github-practice 입력 후 ctrl + s(저장)
하단 터미널에 git add README.md 입력
터미널에 git commit -m "first commit" 입력
터미널에 git branch -M main 입력
레포지토리 주소 복사
터미널에 git remote add origin <레포지토리 주소> 입력
터미널에 git push -u origin main 입력
GitHub Repository에 Local Repository의 파일 추가됨
"Settings" 클릭
스크롤 내린 후 Features - Issues의 "Set up templates" 클릭
"select" 클릭
"Feature request" 클릭
"Preview and edit" 클릭
편집 버튼 클릭
Template content 지우기
하단 내용 붙여넣기
## Background
-
## Todo
- [ ] Todo 1
- [ ] Todo 2
## See also
- #
- Background - 작업의 배경을 작성합니다.
- Todo - 해야할 작업들을 나열합니다. (SubTask 개념)
- See also - 해당 Issue와 관련있는 다른 Issue 혹은 Pull Request의 태그를 작성합니다.
Issue default title에 [FEAT] 입력
"Propose changes" 클릭
"Commit changes" 클릭
GitHub Repository에 Issue Template 추가됨
Local Repository에는 추가된 Issue Template이 없음
git pull origin main 입력 -> Issue Template 추가됨
feature_request.md를 복제하여 bug_report.md 파일 추가
(경로: github-practice/.github/ISSUE_TEMPLATE/bug_report.md)
하단 내용 붙여넣기
---
name: Bug report
about: Reporting a bug for this project
title: "[BUG]"
labels: ''
assignees: ''
---
## Describe the bug
-
## To Reproduce
-
## Expected behavior
-
## Screenshots
-
## Additional context
-
## Possible Solution
-
## Your Environment
-
- Describe the bug: 버그에 대한 설명
- To Reproduce: 버그를 재현하는 방법
- Expected behavior: 정상적으로 작동했다면 일어나야하는 작동 방식
- Screenshots: 버그가 관측된 스크린 샷이 있다면 첨부
- Additional context: 버그와 관련된 추가 정보를 작성
- Possible Solution: 버그를 해결할 가능성이 있는 해결책을 제안
- Your Environment: 특정 환경에서만 발생하는 버그일 수 있으므로 실행 환경 작성
git add .github\ISSUE_TEMPLATE\bug_report.md 입력
git status 입력 -> 상태 확인
git commit -m "feat: Add Bug report issue template" 입력
git push origin main 입력
GitHub Repository에 Issue Template 추가됨
"Issues" 클릭
"New Issue" 클릭
Feature request의 "Get started" 클릭
내용 수정
- Add a title -
[FEAT] 더하기 함수를 구현합니다.
- Add a description -
## Background
- 두 개의 숫자를 입력으로 받아 합을 반환하는 더하기 함수를 구현해야 합니다.
## Todo
- [ ] add 함수 구현
- Add a title - Issue 제목
- Add a description - Issue 설명
- Assignees - Issue 담당 팀원
- Labels - Issue 종류
"Submit new issue" 클릭
Issue 추가됨 (Issue Tag: #1)
git branch feat-1/add-function 입력 -> branch 생성
git branch 입력 -> branch 확인
git checkout feat-1/add-function 입력 -> branch 이동
- feat: 기능 구현
- -1: Issue Tag
- add-function: 구현할 기능
main.py 생성
(경로: github-practice/main.py)
하단 내용 붙여넣기
def add(x, y):
return x + y
if __name__ == "__main__":
print(add(1, 2))
print(add(1.5, 2.5))
print(add(1, 2.5))
print(add(1.5, 7))
git add main.py 입력
git commit -m "feat: Add add function 입력
Enter 입력
#1" 입력
Issue Template에 맞추기 위해 줄바꿈 적용한 것
git push origin feat-1/add-function 입력
Issues에 Commit 추가됨 -> 이러한 작업 내용을 merge 하기 위해 Pull Request 필요
git checkout main 입력 -> main branch로 이동
PULL_REQUEST_TEMPLATE.md 파일 생성
(경로: github-practice/.github/PULL_REQUEST_TEMPLATE.md)
하단 내용 붙여넣기
## Overview
-
## Change Log
-
## To Reviewer
-
## Issue Tags
- Closed: #
- See also: #
- Overview: 작업에 대한 개요
- Change Log: 작업에서 변경된 부분
- To Reviewer: 리뷰어에게 전달할 내용
- Issue Tags: 해당 PR과 관련있는 Issue의 Tag, PR 종료 시 해당 Issue 함께 종료
git add .github/PULL_REQUEST_TEMPLATE.md 입력
git commit -m "feat: Add Pull Request Template" 입력
git push origin main 입력
Pull Request Template 추가됨
"Pull requests" 클릭
"Compare & pull request" 클릭
내용 수정
하단 내용 붙여넣기
#1
## Overview
- 두 개의 수를 입력 받아 더한 값을 반환하는 함수를 구현했습니다.
## Change Log
- 두 개의 수를 입력 받아 더한 값을 반환하는 함수 구현
## Issue Tags
- Closed: #1
- Reviewers: 코드 리뷰 담당자
- Assignees: 코드 작성자
- Labels: 작업 종류
"Create pull request" 클릭
코드 리뷰 대기
(Reviewer 화면) Review 요청 받음
(Reviewer 화면) "Files changed" 클릭
(Reviewer 화면) 변경사항 확인
(Reviewer 화면) Review를 원하는 라인에 커서를 올리면 [+] 버튼 팝업 -> 클릭 시 해당 라인 리뷰
클릭 후 드래그 시 여러 라인 선택 가능
(Reviewer 화면) 리뷰 작성 및 "Start a review" 클릭
(Reviewer 화면) 모든 리뷰 작성 후 "Finish your review" 클릭
(Reviewer 화면) 세 개의 옵션 중 하나 선택 후 "Submit review" 클릭
- Comment: 단순 댓글(코드 승인 x)
- Approve: 코드 승인
- Request changes: 코드 승인 x
(Reviewer 화면) 코드 승인 x
코드 수정 필요
git checkout feat-1/add-function 입력
add-function을 구현했던 branch로 돌아와 코드 수정
수정한 main.py가 정상적으로 동작하는지 Local에서 확인
git add main.py 입력
git commit -m "refactor: add function type" 입력
git push origin feat-1/add-function 입력
(Reviewer 화면) 새로운 Commit 추가됨
(Reviewer 화면) "View changes" 클릭
(Reviewer 화면) 코드 리뷰
(Reviewer 화면) Approve
"Merge pull request" 클릭
"Confirm merge" 클릭
"Delete branch" 클릭
merge 완료
main branch에 적용됨
하단 내용 붙여넣기
## Background
- 파이썬 코드 포맷팅을 위한 black을 자동화 하기 위해 pre-commit을 설치해야 합니다.
## Todo
- [ ] pre-commit 설치 및 config 설정
- [ ] config에 black 설정

git branch 입력
GitHub Repository의 내용이 Local Repository에 반영되지 않음
git checkout main 입력
git pull 입력
GitHub Repository의 내용이 Local Repository에 반영
git branch feat-3/pre-commit 입력
git branch -> branch 확인
git checkout feat-3/pre-commit 입력
pip install pre-commit 입력
pre-commit sample-config > .pre-commit-config.yaml 입력
- 공백 제거, end-of-file 검사, yaml 검사, 대용량 파일 검사 등을 기본 hook으로 설정
- hook은 간단하게 중간에 실행되는 프로그램이라 이해
하단 내용 붙여넣기
# See <https://pre-commit.com> for more information
# See <https://pre-commit.com/hooks.html> for more hooks
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.2.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files
- repo: https://github.com/psf/black
rev: stable
hooks:
- id: black
pre-commit autoupdate 입력 -> 에러 발생
"UTF-16 LE" 클릭
"Save with Encoding" 클릭
"UTF-8" 클릭
pre-commit autoupdate 입력
pre-commit install 입력
git add .pre-commit-config.yaml 입력
git commit -m "feat: Add pre-commit config 입력
Enter 입력
#3" 입력
pre-commit 최초 실행 시 초기 설정으로 인한 시간 소요
Failed 발생 시 위 과정 다시 수행
(git add .pre-commit-config.yaml 입력
git commit -m "feat: Add pre-commit config 입력
Enter 입력
#3" 입력)
pre-commit run —all-files 입력
- 기존 모든 파일에 대해 pre-commit 적용
- Failed 발생한 파일들 다시 commit 필요
git status 입력
git add . 입력
모든 파일 add
git commit -m "refactor: Apply pre-commit" 입력
git push origin feat-3/pre-commit 입력

하단 내용 붙여넣기
- Add a title -
Add pre commit
- Add a description -
## Overview
- pre-commit을 추가합니다.
## Change Log
- pre-commit config 및 Python 포맷팅을 위한 black을 추가했습니다.
- 기존 파일에 pre-commit을 적용하였습니다.
## Issue Tags
- Closed: #3


git init : 현재 폴더 git 폴더화
git remote : remote 폴더 확인
git remote <git 경로> : origin remote 폴더 만들고 git 경로와 연동git branch -M main : main 브랜치로 이동
git checkout <branch_x> : branch_x로 이동
git checkout -b <branch_x> : branch_x로 이동, branch_x가 없다면 생성 후 이동git add <abc.py> : 현재 브랜치에 abc.py stage
git commit -m "message" : stage 상태인 file 모두 커밋
git status : 현재 상태 확인
git push origin main : origin -> main push
git push -u origin main : origin -> main push 자동화 (이후 git push만 써도 됨)
git pull origin main : main -> origin pull
git reset HEAD : 최신 add 취소
git reset HEAD^ : 최신 commit 취소pip install pre-commit : pre-commit 라이브러리 설치
pre-commit sample-config > .pre-commit-config.yaml : sample config 생성
pre-commit autoupdate : config 자동 업데이트
pre-commit install : 현재 branch에 pre-commit config 적용
pre-commit run --all-files : 이미 push된 파일 포함 모든 파일 재검사pip freeze > requirements.txt