1. FastForward Merge, 3 Way Merge(충돌 위험)
# add . 및 commit 한 로그 확인
$ git log

$ git reset

# 히스토리를 남기고 복사해서 붙여넣기
$ git revert
# 모든 history가 남아있음 (reset 한 거 까지 남아있음 -> 한번이라도 commit 하면 복구 가능)
$ git reflog

2. Branch
# branch 확인
$ git branch
# branch 생성
$ git branch "브랜치 명"
# branch 생성과 이동을 동시에
$ git checkout -b "브랜치 명"
# 강제 삭제 (브랜치 잘못 생성시)
$ git branch -D "브랜치 명"
# 원격 branch 삭제 (github)
$ git push origin --delete "브랜치 명"
# 해당 branch로 이동
$ git checkout "브랜치 명"


3. Rebase Merge
재정렬
3way에서 따로 생긴 branch를 뒤에 붙힘
- a 생성 : init, add, commit
- b 생성 : init, add, commit
- git checkout -b topic
- d 생성 → topic 브랜치에 생성
- git checkout main → 다시 main 브랜치로 변경
- git commit -m “c” →
- git checkout topic →
- git rebase
a - b - d - c 일 때 (main), topic으로 간 뒤, git rebase main 시 a - b - c - d (topic)
여기서,
git rebase -i HEAD~3 → b
INSERT I 누른 후 r, 해당 부분 편집 후 :wq
4. 협업
<팀장>
- 환경세팅.txt파일들 생성 - commit
- 라이브러리 등록
- 패키지 설정
- util 설정
- properties 설정
- 기타 설정 (interceptor, 예외처리 등)
1-1. git checkout -b dev (dev branch 생성)
- git repository 생성
- git push origin master, git checkout -b dev, git push origin dev
- git remote add origin “repo 주소”
- git checkout master → push
- repository 세팅
- 콜라보 세팅 (초대)
- master, dev(여기서 개발 - pull) → repo / setting / Branches / Add classic branch(구버전) / pattern에 master입력 / 그 밑에 권한중 Require a pull req 체크(merging1 = 팀원 중 1명이라도 승인하면 push 가능) / create → 같은 방식으로 dev rules도 생성
<팀원>
- dev pull (git pull origin)
- git init / git remote add origin “주소” / git remote -v (repo 확인) / git checkout -b dev / git pull origin dev
- dev → branch → join-topic → 개발 진행 → topic에서 dev rebase(정렬) 이걸 올리면 fastforward → 코드 컨벤션에 어긋나는 부분등 체킹해서 다시 push 해달라는 요청만 하면 됨 (충돌 이슈x)
B기능
- git checkout -b b-topic
- b기능.txt
- 완료 후 git add . / git commit -m / 하고 대기-
A기능
- git checkout dev / git pull origin dev /
- 다시 본인 topic으로 이동 → git checkout a-topic
- git rebase dev (여기서 충돌이 나면 merge를 함) → dev에 누가 먼저 push 했을 수 있으니 먼저 pull 하기
- 개발 완료 후 git push origin a-topic
- PR 요청(합쳐도 되는지 요청) → repo상단 pull req / New pull req / dev ← a-topic / Merging is blocked(Reviewer에서 팀원 및 팀장 선택 후 PR 요청) / Create pull request /
- 팀장 → pull req에서 해당 PR 클릭 후 코드 체킹(files changed) / Review Change 클릭 후 Approve(승인) / Submit 하면 끝!
다시 B기능
- remote add origin / git pull origin dev(C기능까지 pull 완료) /
- git checkout b-topic / git rebase dev / git push origin b-topic /
본인 branch에서만 강제 push 및 reset 가능 (git push -f origin smj)
dev 동기화 후 topic 딸 것 !
git checkout smj / git rebase dev / git add . commit -m 작성 후 / git log로 checking /

→ 여기서 smj | REBASE 일 경우 git rebase - - continue / git push origin smj 끝!

Share article