Programming

; develop a program

Git & GitHub

[Git & GitHub] 혼자하는 간단한 실습

Clloud_ 2022. 11. 10. 11:16
반응형

이번 포스팅에서는 저장소(repository)를 만든 다음, 초기화하고 커밋하는 과정에 대하여 공부를 해보고자 한다.

 


전제 조건 (prerequisites)

로컬 환경에서 git 사용 가능한 상태여야 한다.

CLI, GUI 무관

 

git config --global user.name , user.email 설정 되어있어야 한다.
remote 저장소로 사용할 github.com 가입 & 계정 생성해야한다.

 


[remote & local] 기본 세팅

1. remote 저장소 생성 (with README.md )

2. local 저장소로 clone

git clone {저장소 url}

 

3. git 기본 설정

# set name and email
git config --global user.name "AAAAAAA"
git config --global user.email "aaaaaaaa@gmail.com"# show all configs
git config --list

 


[remote] 이슈 생성

github.com > 생성한 저장소 > Issue 메뉴


Issue 생성
제목 : 프로젝트 설명 추가 (README.md 수정)
내용 : Markdown을 이용하여 자유롭게 작성

 


[local] 실습용 브랜치 생성

git checkout main # or git checkout master (본인 계정의 기본 브랜치 설정에 따라 달라짐)
git branch
git branch fix-readme
git checkout fix-readme

 

feature branch는 항상 remote의 main 브랜치를 기준(base)로 만들어야한다. (충돌 방지)

 


[local] git 명령어를 사용하여 커밋 추가

1. README.md 파일 수정하기

2. 아래 명령어로 커밋 추가하기

git diff
git status

git add
git status

git commit

git log
# log with options
git log --graph --oneline

 


[local → remote] 저장소에 올리기

git branch
git fetch origin
git push origin fix-readme

 


[remote] Pull Request & Merge

1. github.com > 생성한 저장소 > Pull Request 메뉴

2. Pull Request 생성

a. base : main
b. compare : fix-readme

 

3. Merge : 아래 세 가지 방법 중 택 1

a. Merge pull request = git merge --squash
현재 코드를 그냥 머지

b. Squash and merge = git merge --squash
여러 커밋을 하나의 커밋으로 만들고(squash) 머지
c. Rebase and merge = git rebase && git merge
현재 코드를 base branch 기준으로 rebase 후 머지

 

4. github.com > 생성한 저장소 > Issue 메뉴

 

5. Close Issue

 


[local] fetch & merge (pull)

1. 로컬 저장소에서 README.md 파일 수정

2. 변경사항 임시 저장해보기 (WIP = Work in progress)

# 변경 사항 확인
git status
git diff # README.md 파일이 변경된다.
# stash 명령으로 변경사항 잠깐 저장
git stash

 

3. 원격 저장소의 변경사항 로컬에 반영하기

git fetch origin
### origin(원격 저장소)가 변경되었다는 로그가 나올거에요
git merge
### 코드 머지

 

4. 다시 stash로 저장한 변경사항 가져오기

git stash list

git stash pop 0
# 충돌 발생

vi README.md # 로 충돌 해결

# 확인
git status
git diff

 


반응형