Post

Git 사용방법

Git을 사용하는 방법을 정리한 글입니다.

Git 사용방법


Git 설치


Git소스 코드의 버전을 관리하는 매우 유용한 프로그램이다.
아래 명령어로 설치한다.

1
sudo apt install git


Git 기본 Workflow


원격 저장소 복제

원격 저장소의 main Branch를 복제하여 로컬에 저장한다.
로컬 저장소의 현재 Branch는 main Branch로 이동된 상태이다.

1
git clone [URL]

작업용 Branch 생성

로컬 저장소에 새로운 작업용 Branch를 생성한다.

1
git branch [BRANCH]

작업용 Branch로 이동

로컬 저장소의 Branch를 작업용 Branch로 이동한다.

1
git switch [BRANCH]

작업 내용 확인

작업 완료 후 작업된 내용을 전체적으로 확인한다.

1
git diff

작업 내용을 Stage에 추가

작업을 완료한 파일들을 반영하기 위해 Stage에 추가한다.

1
git add .

Stage에 추가된 작업 내용 확인

Stage에 추가된 파일들의 작업 내용을 전체적으로 확인한다.

1
git diff --staged

작업 내용 반영

Stage에 추가된 내용을 로컬 저장소의 현재 Branch에 반영한다.

1
git commit -m [MESSAGE]

원격 저장소 동기화

origin 서버에 있는 main Branch의 최신 내용을 로컬 저장소에 동기화한다.

1
git fetch origin main

원격 저장소 최신 이력 확인

로컬 저장소에 동기화된 origin 서버의 main Branch에서 변경된 최신 이력을 확인한다.

1
git log origin/main

원격 저장소의 최신 변경사항과 점검

작업 내용을 원격 저장소로 반영하기 전에 원격 저장소의 새로운 변경사항을 현재 Branch에 먼저 반영하여 문제가 없는지 점검한다.
Branch 사이의 변경사항을 반영하는 방법으로는 mergerebase 두 가지가 있다.

  • merge 사용
    origin 서버의 main Branch에 반영된 변경사항을 현재 Branch 이후로 병합한다.
    1
    
    git merge origin/main
    
  • rebase 사용
    현재 Branch에 반영된 변경사항을 origin 서버의 main Branch 이후로 재정렬하여 병합한다.
    1
    
    git rebase origin/main
    

작업용 Branch를 main Branch에 반영

문제가 없음을 확인한 작업용 Branch의 내용을 main Branch에 반영하기 위해 Branch를 이동한다.

1
git switch main

이후 위에서 설명한 두 가지 방법 중 상황에 맞는 방법을 선택하여 main Branch에 반영한다.

  • merge 사용
    1
    
    git merge [BRANCH]
    
  • rebase 사용
    1
    
    git rebase [BRANCH]
    

원격 저장소의 모든 내용이 작업용 Branch에 이미 반영되어 있으므로 Fast-Forward 방식으로 손쉽게 반영된다.

작업이 반영된 main Branch를 원격 저장소에 업로드

모든 작업이 반영된 main Branch를 원격 저장소에 업로드한다.

1
git push origin main

작업용 Branch 삭제

업로드까지 완료된 작업용 Branch는 삭제하여 정리한다.

1
git branch -d [BRANCH]


기타 유용한 Git 명령어


작업 내용 임시 저장

작업 도중 필요에 의해 작업 내용을 임시 저장해야 할 때는 아래 명령어를 사용한다.

  • 현재 수정사항 임시 저장
    1
    
    git stash push
    
  • 임시 저장된 수정사항 적용 후 삭제
    1
    
    git stash pop --index
    
  • 가장 최근의 임시 저장 항목 삭제
    1
    
    git stash drop
    
  • 임시 저장된 수정사항 내용 확인
    1
    
    git stash show --patch
    

특정 작업 내용만 반영

특정 반영사항만 선택하여 현재 Branch에 적용한다.

1
git cherry-pick [COMMIT ID]

원격 저장소의 Branch 정리

원격 저장소에서 삭제된 Branch를 로컬 저장소에서도 제거하여 최신 상태로 정리한다.

1
git fetch origin --prune

특정 시점으로 이동

특정 시점으로 이동하면 현재 Branch에서 분리된 detached 상태가 된다.

1
git checkout [COMMIT ID]

이후 특정 Branch로 이동하면 해당 Branch의 가장 최신 시점으로 연결된다.

1
git switch [BRANCH]

작업 사항을 Patch로 저장 및 적용

작업 사항을 원격 저장소에 직접 반영하지 못하는 상황에서는 Patch를 이용해 전달할 수 있다.

  • Patch 생성
    1
    
    git diff --no-prefix > [PATCH FILE]
    
  • Patch 적용
    1
    
    patch -p0 < [PATCH FILE]
    
This post is licensed under CC BY 4.0 by the author.