본문 바로가기
카테고리 없음

Git 명령어 모음

by 들판에 날라다니는 솜 2026. 7. 6.

1. Git 설정 (Config)


Git을 처음 설치하면 내가 누구인지 알려줘야 합니다.
커밋에는 작성자의 이름과 이메일이 기록되므로, Git이 이를 알 수 있도록 설정하는 과정이다.

전역 사용자명 등록git config --global user.name "Your Name"
전역 이메일 등록git config --global user.email "you@example.com"
저장소별 사용자명 등록git config user.name "Your Name"
저장소별 이메일 등록git config user.email "you@example.com"
전역 설정 조회git config --global --list
현재 저장소 설정 조회git config --list
특정 설정 조회git config user.name
기본 브랜치 설정git config --global init.defaultBranch main

2. 저장소 생성


Git은 프로젝트를 관리하기 위해 먼저 Git 저장소(Repository) 를 만들어야 한다.
이미 만들어진 저장소를 내려받거나(clone), 새로운 저장소를 초기화(init)할 때 사용한다.

Git 저장소 생성git init
원격 저장소 복제git clone <URL>
특정 브랜치만 Clonegit clone -b <branch> <URL>

3. 파일 상태 확인


현재 어떤 파일이 수정되었는지, 어떤 파일이 아직 커밋되지 않았는지 확인한다.

현재 상태 확인git status
변경 내용 확인git diff
Staging과 비교git diff --cached
커밋 간 차이 확인git diff commit1 commit2

4. Staging Area


수정한 파일 중 어떤 파일을 커밋할지 선택하기 위해 사용한다.
Git에서는 수정했다고 바로 커밋되는 것이 아니라, 먼저 Staging Area에 올린 후 커밋한다.

파일 추가git add 파일명
전체 추가git add .
수정/삭제 파일만 추가git add -u
일부만 추가git add -p
Stage 취소git restore --staged 파일명

5. Commit


현재까지의 작업을 하나의 기록(스냅샷)으로 남긴다.
나중에 문제가 생기면 이 기록을 기준으로 돌아가거나 변경 이력을 확인할 수 있다.

커밋git commit -m "메시지"
Stage + Commitgit commit -am "메시지"
마지막 커밋 수정git commit --amend
작성자 변경git commit --amend --author="이름 <메일>"

6. 브랜치 (Branch)


새로운 기능을 개발하거나 버그를 수정할 때 메인 코드와 분리된 공간에서 작업하기 위해 사용한다.

브랜치 목록git branch
원격 브랜치git branch -r
전체 브랜치git branch -a
브랜치 생성git branch feature/login
브랜치 생성 + 이동git checkout -b feature/login
(권장) 생성 + 이동git switch -c feature/login
브랜치 이동git checkout 브랜치명
(권장) 이동git switch 브랜치명
브랜치 이름 변경git branch -m 새이름
브랜치 삭제git branch -d 브랜치명
강제 삭제git branch -D 브랜치명

7. Merge


기능 개발이 끝난 브랜치를 메인 브랜치에 반영하기 위해 사용한다.

병합git merge 브랜치명
Commit 없이 Mergegit merge --no-commit 브랜치명
Fast Forward 금지git merge --no-ff 브랜치명
Squash Mergegit merge --squash 브랜치명
Merge 취소git merge --abort

8. 📜 작업 이력 확인 (Log)


누가 언제 무엇을 수정했는지 확인합니다.
문제 원인을 찾거나 과거 변경 내역을 분석할 때 사용합니다.

전체 로그git log
한 줄 로그git log --oneline
그래프 보기git log --graph
그래프 + 한 줄git log --oneline --graph
모든 브랜치git log --all --graph --oneline
최근 1개git log -1
최근 5개git log -5
변경 내용 포함git log -p
작성자별 조회git log --author="이름"
날짜별 조회git log --since="1 week ago"

9. 원격 저장소(Remote)


GitHub같은 원격 저장소와 연결하거나 관리하기 위해 사용한다.

원격 확인git remote -v
원격 추가git remote add origin URL
원격 변경git remote set-url origin URL
원격 삭제git remote remove origin

 


10. ☁️ 원격 저장소와 동기화 (Push / Pull / Fetch)

다른 사람들과 협업하기 위해 로컬 저장소와 원격 저장소의 변경사항을 주고받습니다.

  • Push: 내 작업을 업로드
  • Pull: 다른 사람의 작업을 내려받고 바로 병합
  • Fetch: 다른 사람의 작업만 내려받고 병합은 하지 않음

Push

Pushgit push
최초 Pushgit push -u origin main
특정 브랜치 Pushgit push origin feature/login
강제 Pushgit push --force
안전한 강제 Pushgit push --force-with-lease
원격 브랜치 삭제git push origin --delete 브랜치명

Pull / Fetch

 
 

Pullgit pull
Fetchgit fetch
Fetch 후 현재 브랜치 갱신git pull origin main
Fetch + Hard Resetgit fetch origingit reset --hard origin/main

11. ↩️ 이전 상태로 되돌리기 (Reset / Restore / Revert)

실수한 작업을 취소하거나, 특정 시점으로 돌아가기 위해 사용합니다.
세 명령어는 비슷하지만 목적이 다릅니다.

  • Reset: 커밋 자체를 이동
  • Restore: 파일 변경만 취소
  • Revert: 되돌리는 새 커밋 생성

Reset

Soft Resetgit reset --soft HEAD~1
Mixed Reset (기본)git reset HEAD~1
Hard Resetgit reset --hard HEAD~1
특정 커밋으로 이동git reset --hard 커밋ID

Restore

파일 복원git restore 파일명
Stage 취소git restore --staged 파일명
특정 커밋 파일 복원git restore --source=커밋ID 파일명

Revert

커밋 되돌리기git revert 커밋ID
여러 커밋 되돌리기git revert A..B

reset은 커밋 자체를 이동시키는 명령이고, revert는 기존 이력을 유지하면서 되돌리는 새 커밋을 만드는 명령입니다.


12. 🕒 작업 임시 보관 (Stash)


작업 중이지만 아직 커밋하고 싶지 않을 때 변경사항을 잠시 보관한다.
급하게 브랜치를 변경하거나 다른 작업을 해야 할 때 유용하다.

Stash

임시 저장git stash
목록 보기git stash list
적용git stash apply
적용 후 삭제git stash pop
삭제git stash drop
전체 삭제git stash clear

 


13. 🏷️ 버전 관리 (Tag)

배포한 버전이나 중요한 커밋에 이름표(버전)를 붙인다.
예를 들어 v1.0.0, v1.1.0처럼 릴리스 버전을 관리할 때 사용한다.

태그 생성git tag v1.0.0
주석 태그git tag -a v1.0.0 -m "Release"
태그 목록git tag
태그 Pushgit push origin v1.0.0
모든 태그 Pushgit push origin --tags

14. ✂️ 커밋 선택 및 이력 정리 (Cherry-pick / Rebase)


필요한 커밋만 가져오거나, 커밋 이력을 깔끔하게 정리할 때 사용합니다.
협업이나 코드 리뷰 전 자주 활용됩니다.

Cherry Pick

특정 커밋 가져오기git cherry-pick 커밋ID
Commit 없이 가져오기git cherry-pick -n 커밋ID
여러 커밋 가져오기git cherry-pick A..B

Rebase

Rebasegit rebase main
Interactive Rebasegit rebase -i HEAD~3
Rebase 계속git rebase --continue
Rebase 취소git rebase --abort

15. 🚑 작업 복구 (Reflog)


reset --hard처럼 위험한 작업을 했더라도 이전에 HEAD가 가리키던 위치를 추적하여 복구할 수 있다.

모든 HEAD 이동 기록git reflog
특정 시점으로 복구git reset --hard HEAD@{3}