git branch [목적지]
실습 목표
리베이스에 대한 이해
실습 과정
git init
touch 0 && git add . && git commit -m "C0"
git checkout -b bugFix
touch 1 && git add . && git commit -m "C1"
touch 2 && git add . && git commit -m "C2"
touch 3 && git add . && git commit -m "C3"
git checkout main
touch 4 && git add . && git commit -m "C4"
touch 5 && git add . && git commit -m "C5"
touch 6 && git add . && git commit -m "C6"
git rebase main bugFix
git log --oneline --graph --all
결과
실습 목표
실습 과정
git init
touch 0 && git add . && git commit -m "C0"
git checkout -b bugFix
vim 1 및 파일 내용 작성 && git add . && git commit -m "C1"
vim 2 및 파일 내용 작성 && git add . && git commit -m "C2"
vim 3 및 파일 내용 작성 && git add . && git commit -m "C3"
git checkout main
vim 1 및 파일 내용 작성 && git add . && git commit -m "C4"
vim 2 및 파일 내용 작성 && git add . && git commit -m "C5"
vim 3 및 파일 내용 작성 && git add . && git commit -m "C6"
git rebase main bugFix
vim 1 및 파일 내용 수정
git add .
git rebase --continue
vim 2 및 파일 내용 수정
git add .
git rebase --continue
vim 3 및 파일 내용 수정
git add .
git rebase --continue
git log --oneline --graph --all
결과
develop
브렌치를 토대로 이루어진다.develop
브렌치에서도 바로 작업이 이루어지지 않고 기능별로 브렌치를 만들어 완성되면 병합한다.GITFLOW
에 비해 간단해보이지만 뭔가 안전하지 않아 보임.README
만들기Setting
에서 main
브렌치에 PR
룰 걸기 (혼자 연습할땐 못함)Assignees
: 일을 해야할 사람 설정Labels
: 어떤 일인지 설정git clone
을 통해 로컬 저장소로 복사(main) git checkout -b enhancement/1
: 작업할 브렌치 생성push
하면 안된다!main
브렌치는 현재 다른 사람들과 협업하며 계속 커밋이 진행되는 상태일 수 있다.main
브렌치에서 작업되고 있는 최신 작업본을 가져와야 한다.(enhancement/1) git pull origin main --rebase
: 최신화 작업(enhancement/1) git push origin enhancement/1
: 원격 저장소로 브렌치 올리기pr
생성pr
승인(enhancement/1) git checkout main
: main 브렌치로 체크아웃(main) git pull origin main
: 최신화 작업(main) git branch -D enhancement/1
: 사용한 브렌치 제거(main) git fetch --prune
: unreachable
한 object
들을 로컬에서 제거하는 작업