백엔드 개발자 공부/Git

[Git] Git Workflow

gotoguy 2022. 8. 29. 22:03
728x90

https://medium.com/analytics-vidhya/git-most-frequently-used-commands-9df9f200c235

혼자 작업 시의 workflow

    1. Fork - 타인의 Remote Repository의 자료에 contribute하기 위해 내 계정의 Repository로 복사해옴

    2. Clone - 복사한 Repository를 수정하기 위해 Local Repository로 복사해옴

git clone '레파지토리_주소'

    3. Add - 코드 수정 후의 파일을 staging area로 올려 Git의 관리 하에 있는 상태로 만듦

https://backlog.com/git-tutorial/git-workflow/

        git add '파일명' : untracked file을 staging area로 추가

            - git add . : 모든 파일을 한번에 추가

            - staged된 파일을 다시 수정하면 modified 상태로 변경됨 → add하여 최신 버전을 다시 올려야 함 

        git status  : 내 로컬의 staged된 파일, untracked(unstaged)된 파일 목록 확인

        git restore '파일명' : commit되지 않은 Local Repository의 변경 사항 폐기

    4. Commit - Staging area의 파일들을 Local Repository에 올리면서 하나의 버전으로 기록

git commit -m '커밋 메시지'

        cf. 커밋 메시지 작성 방법

        git reset HEAD^ : 에러 수정을 위해 가장 최신의 커밋 취소

        git log : 현재까지 commit된 내역 확인

    5. Push : Local Repository에 저장되어 있는 commit 기록들을 내 Remote Repository에 업로드

git push '저장소명' '브랜치명'

    6. Pull Request(PR) : 내가 push한 변경 사항에 대해 함께 작업하는 사람들에게 알림

        - Github 웹상에서 내가 push한 내용을 요약해서 파악할 수 있음(Compare & pull request)

 

함께 작업 시의 workflow

    1. git init : 새로운 Git 저장소를 생성(초기화)하여 기존 디렉토리를 Git Repository로 변환

    2. 원격 관리 : 내 컴퓨터의 Git 디렉토리를 Remote Repository와 연결

        - git remote add origin '내 Repository 주소' : 내 Local Repository 연결

        - git remote add pair '상대방 Repository 주소' : 상대방(pair)의 Local Repository 연결

        - git remote -v : 현재의 Local Repository와 연결된 모든 Remote Repository 목록 확인

    3. Remote Repository를 통해 서로의 변경사항 공유

        - git pull pair '브랜치명' : 상대방이 해당 branch에 commit한 작업 내용을 내 Local Repository로 가져와서 자동 병합

        - 충돌 발생으로 자동 병합 실패(Merge conflict) 시

            1. git status 명령어를 통해 충돌하고 있는 파일 확인

            2. 충돌부분 비교 후 수정 - Accept Current Change(내 변경내용 반영) / Accept Incoming Change(상대방의 변경내용 반영) / Accept Both Changes(모든 변경 사항 반영)

            3. 수정 후 Remote Repository에 업로드

728x90

'백엔드 개발자 공부 > Git' 카테고리의 다른 글

[Git] Git: 버전관리 시스템  (0) 2022.08.29