이번 포스팅에서는 저장소(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
'Git & GitHub' 카테고리의 다른 글
[GitHub] 깃허브 블로그 만들기(1) (0) | 2022.12.07 |
---|---|
[Git & GitHub] 간단한 협업 실습 (0) | 2022.11.11 |
[GitHub] 깃허브(GitHub)란? (0) | 2022.11.09 |
[Git] 깃(Git) 협업을 위한 명령어(2) (6) | 2022.11.07 |
[Git] 깃(Git) 협업을 위한 명령어(1) (2) | 2022.11.06 |