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 사이의 변경사항을 반영하는 방법으로는 merge
와 rebase
두 가지가 있다.
- 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]