inblog logo
|
SHIN
    TeamProject

    GitHub 협업

    Fastforward Merge&3 Way Merg e / Branch / Rebase Merge / 협업
    SHIN's avatar
    SHIN
    Aug 27, 2024
    GitHub 협업
    Contents
    1. FastForward Merge, 3 Way Merge(충돌 위험)2. Branch3. Rebase Merge4. 협업

    1. FastForward Merge, 3 Way Merge(충돌 위험)

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

    2. Branch

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

    3. Rebase Merge

    💡
    재정렬 3way에서 따로 생긴 branch를 뒤에 붙힘
     
    1. a 생성 : init, add, commit
    1. b 생성 : init, add, commit
    1. git checkout -b topic
    1. d 생성 → topic 브랜치에 생성
    1. git checkout main → 다시 main 브랜치로 변경
    1. git commit -m “c” →
    1. git checkout topic →
    1. 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. 협업

    <팀장>
    1. 환경세팅.txt파일들 생성 - commit
        • 라이브러리 등록
        • 패키지 설정
        • util 설정
        • properties 설정
        • 기타 설정 (interceptor, 예외처리 등)
        1-1. git checkout -b dev (dev branch 생성)
    1. git repository 생성
    1. git push origin master, git checkout -b dev, git push origin dev
        • git remote add origin “repo 주소”
        • git checkout master → push
    1. repository 세팅
        • 콜라보 세팅 (초대)
        • master, dev(여기서 개발 - pull) → repo / setting / Branches / Add classic branch(구버전) / pattern에 master입력 / 그 밑에 권한중 Require a pull req 체크(merging1 = 팀원 중 1명이라도 승인하면 push 가능) / create → 같은 방식으로 dev rules도 생성
     
    <팀원>
    1. dev pull (git pull origin)
    • git init / git remote add origin “주소” / git remote -v (repo 확인) / git checkout -b dev / git pull origin dev
    1. dev → branch → join-topic → 개발 진행 → topic에서 dev rebase(정렬) 이걸 올리면 fastforward → 코드 컨벤션에 어긋나는 부분등 체킹해서 다시 push 해달라는 요청만 하면 됨 (충돌 이슈x)
     
     

     
    B기능
    1. git checkout -b b-topic
    1. b기능.txt
    1. 완료 후 git add . / git commit -m / 하고 대기-
    A기능
    1. git checkout dev / git pull origin dev /
    1. 다시 본인 topic으로 이동 → git checkout a-topic
    1. git rebase dev (여기서 충돌이 나면 merge를 함) → dev에 누가 먼저 push 했을 수 있으니 먼저 pull 하기
    1. 개발 완료 후 git push origin a-topic
    1. PR 요청(합쳐도 되는지 요청) → repo상단 pull req / New pull req / dev ← a-topic / Merging is blocked(Reviewer에서 팀원 및 팀장 선택 후 PR 요청) / Create pull request /
    1. 팀장 → pull req에서 해당 PR 클릭 후 코드 체킹(files changed) / Review Change 클릭 후 Approve(승인) / Submit 하면 끝!
     
     
    다시 B기능
    1. remote add origin / git pull origin dev(C기능까지 pull 완료) /
    1. 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 /
    notion image
     
    → 여기서 smj | REBASE 일 경우 git rebase - - continue / git push origin smj 끝!
     
    notion image
     
    Share article
    Contents
    1. FastForward Merge, 3 Way Merge(충돌 위험)2. Branch3. Rebase Merge4. 협업

    SHIN

    RSS·Powered by Inblog