데브옵스/CI,CD

[Github] Git 기본 용어 및 명령어 모음

SparkIT 2025. 2. 18. 11:15

용어

기본

용어 설명
Repository 프로젝트의 코드와 변경 이력을 저장하는 공간
Working Directory 실제로 파일을 수정하는 공간 (내 컴퓨터의 현재 프로젝트 상태)
Staging Area git add로 커밋하기 전에 변경 사항을 저장하는 공간
Commit 특정 시점의 변경 사항을 저장하는 것 (git commit -m "메시지")
Branch 독립적으로 작업할 수 있는 코드의 분기 (main, develop, feature/xxx 등)
Merge 다른 브랜치의 변경 사항을 현재 브랜치로 합치는 작업
Rebase 브랜치의 시작점을 다른 브랜치의 최신 커밋으로 변경하여 깔끔한 히스토리 유지
Remote Repository GitHub, GitLab, Bitbucket 같은 서버에 저장된 레포지토리
Local Repository 내 컴퓨터에 있는 Git 저장소

 

Git 상태

용어 설명
Untracked Git이 관리하지 않는 파일 (git add를 해야 추적됨)
Modified Git이 추적 중인 파일이 변경된 상태 (git add 전)
Staged git add로 커밋 대기 상태 (git commit 가능)
Committed git commit을 해서 변경 사항이 로컬 저장소에 반영된 상태
Pushed git push로 원격 저장소에 업로드된 상태

 

원격 저장소

용어 설명
origin 기본 원격 저장소의 이름 (보통 git remote add origin <URL>로 설정)
upstream 포크한 저장소의 원본 저장소 (협업할 때 사용)
fetch 원격 저장소에서 변경 사항을 가져오지만 병합하지 않음 (git fetch)
pull 원격 저장소에서 변경 사항을 가져오고 자동 병합 (git pull)
push 로컬 변경 사항을 원격 저장소에 업로드 (git push origin main)

 

 


명령어

기본

명령어 설명 예제
git init 현재 디렉토리를 git 저장소로 초기화(시작)  
git clone <원격 레포지토리 주소> 원격 저장소를 로컬로 복제  
git status 현재 브랜치 상태 확인 git status
: 변경된 파일 목록들(추적되지 않은 파일 + 추적되고 있는 파일)을 다음과 같이 표시

Untracked files:
src/test/testfile1.ts
src/hi/hello.ts
...
git add <파일명> 특정 파일을 스테이징 영역에 추가 git add src/test/testfile1.ts
: 변경된 파일 중 하나를 선택해 스테이징 영역에 추가
git add .  변경된 모든 파일을 스테이징 영역에 추가  
git commit -m "커밋메시지" 스테이징 변경 사항을 해당 커밋메시지로 커밋  
git log 커밋 기록 확인  
git show <커밋ID> 특정 커밋의 상제 정보 확인  
git diff 변경된 사항 비교  

 

브랜치

명령어 설명 예제
git branch 현재 브랜치 목록 확인  
git branch <브랜치명> 새로운 브랜치 생성  
git checkout <브랜치명> 해당 브랜치로 이동  
git switch <브랜치명> 해당 브랜치로 이동(checkout은 브랜치 이동 이외 기능도 할 수 있어서, 명령어에 대한 역할을 명확하게 하기 위해 브랜치 이동만 실행하는 switch 명령어가 최근 추가됨)  
git checkout -b <브랜치명> 브랜치 생성 후 바로 이동 git checkout -b main origin/main
: 원격의 main 브랜치를 로컬 main 브랜치로 가져오고 로컬 main 브랜치로 바로 이동
git switch -c <브랜치명> 브랜치 생성 후 바로 이동 git switch -c main origin/main
: 원격의 main 브랜치를 로컬 main 브랜치로 가져오고 로컬 main 브랜치로 바로 이동
git merge <브랜치명> 현재 브랜치에 지정한 브랜치를 병합  
git rebase <브랜치명> 현재 브랜치를 지정한 브랜치 위로 이동 (히스토리 정리)  
git branch -d <브랜치명> 브랜치 삭제 (병합된 경우)  
git branch -D <브랜치명>
강제 브랜치 삭제 (병합되지 않아도 삭제)  
git branch -d/-D <브랜치명1> <브랜치명2> <브랜치명3> 여러 브랜치 삭제  

 

원격 저장소

명령어 설명 예제
git remote -v 등록된 원격 저장소 확인  
git remote add origin <저장소 URL> 원격 저장소 추가  
git push origin <브랜치명> 원격 저장소에 푸시  
git push -u origin <브랜치명> 최초 푸시 및 추적 설정  
git pull origin <브랜치명> 원격 저장소에서 변경 사항 가져오기  
git fetch origin 원격 저장소의 최신 상태 정보 가져오기