[Git] 자주 쓰는 명령어, 익숙해지자

2023. 1. 13. 22:47·개발/Git
반응형

Git 자주 쓰는 명령어

내가 현업에서 Git을 사용하면서 자주 사용하는 순으로 나름대로 정리해 보았다.
실제로 더 디테일한 옵션을 사용하기도 하지만 아래 내용만으로도 대부분의 업무가 가능하고,
브랜치가 엄청 많거나 분단위로 커밋이 발생하는 경우가 아닌 이상 충분하다고 생각한다.

# remote 저장소로부터 git repository를 복사한다.
git clone [remote repo]

# commit history를 보여준다.
git log

# 한줄로 commit 로그를 출력한다.
git log --oneline

# commit 로그 그래프를 보여준다.
git log --graph

# 현재 파일 상태를 표시한다.
git status

# stage 상태와 HEAD를 비교한다.
git diff --staged

# remote 브랜치를 branch name으로 생성하면서 remote branch를 tracking 한다.
git checkout -b [branch name] [remote branch]

# 현재 HEAD에서 name 브랜치를 생성한다.
git branch [name]

# 원격 포함 전체 브랜치 조회한다.
git branch -a

# remote repo를 name으로 저장하면서 등록한다.
git remote add [name] [remote repo]

# remote 저장소를 조회한다.
git remote -v

# directory 모든 파일을 Staging 한다.
git add .

# commit message와 함께 commit 한다.
git commit -m "commit message"

# 최근 commit을 수정한다.
git commit --amend

# remote 저장소로 부터 동기화한다.
git pull

# origin의 상태로 현재 로컬 브랜치의 상태를 동기화한다.
git fetch origin -p

# origin 으로 현재 commit 내역을 push한다.
git push origin

# 특정 commit id 로 현재 파일의 상태를 강제 초기화한다.
git reset --hard [commit id]

# 방금 commit 을 제거하고 직전 HEAD로 초기화한다.
git reset --hard HEAD^

# 현재 수정된 내용 저장한다.
git stash

# 수정된 내용을 불러온다.
git stash pop

# origin/dev 브랜치를 현재 브랜치로 merge한다.
git merge origin/dev

# working directory의 불필요한 파일 제거한다.
git clean

# git history가 전부 저장된 로그 조회한다.
git reflog

# 현재 directory를 git repo로 만든다.
git init

 

일반적인 업무 flow

  • clone, log, status, checkout, branch, remote로 local repo를 세팅하고 코드 수정/추가 작업을 한다.
  • 이때 너무 단순한 업무가 아니라면 가능한 local branch를 새로 만든다.
  • pull, add, commit, push 정도 순서대로 push 하여 GitHub/Gerrit 코드리뷰 단계로 넘어간다.
  • 이때 새로운 브랜치를 만들었다면 push 하려고 하는 remote branch를 제대로 확인해야 한다.
  • push 전에 가능한 rebase 된 상태로 push를 하려고 한다. conflict이 발생하면 local에서 해결하고 push 한다.

 

결론

Git 자주 사용하는 명령어를 정리해 보았다.
사실 이렇게 터미널에서 명령어로 하기보다는 IDE에서 제공하는 Git이나 Sourcetree 등 GUI 툴을 사용하는 경우가 많다.
하지만 다소 느리거나, 사용하지 못하는 환경인 경우에 터미널로 Git을 사용해야 할 때가 종종 있고, Git 자체를 제대로 이해하려면 터미널 명령어를 사용할 줄 알아야 훨씬 수월하게 형상관리가 가능한 것 같다.

저작자표시

'개발 > Git' 카테고리의 다른 글

[Git] Rebase와 Merge의 차이 by Visualizing-git  (0) 2023.02.02
[Git] 안심하고 commit하자 reflog  (0) 2023.01.13
[Git] GitHub vs Gerrit  (0) 2023.01.09
[Git] 좋은 commit message 작성  (0) 2023.01.08
[Git] 터미널에 Git branch 표시  (0) 2023.01.05
'개발/Git' 카테고리의 다른 글
  • [Git] Rebase와 Merge의 차이 by Visualizing-git
  • [Git] 안심하고 commit하자 reflog
  • [Git] GitHub vs Gerrit
  • [Git] 좋은 commit message 작성
growing-dev
growing-dev
S/W 개발 관련 내용들과 취미나 육아, 맛집 등 관심 있는 내용을 공유하는 블로그입니다.
    반응형
  • growing-dev
    성장하는 개발자 블로그
    growing-dev
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 개발
        • 개발 공통
        • 개발 환경
        • Git
        • 자료구조, 알고리즘
        • C, C++
        • Python
        • DevOps
        • CMake
      • 공부
        • 영어
        • 경제
      • 취미, 육아 N
        • 육아
      • 생활정보
  • 블로그 메뉴

    • 홈
  • 링크

    • growing-dev GitHub
  • 공지사항

    • [블로그 시작] 성장하는 개발자 스토리입니다.
  • 인기 글

  • 태그

    VS Code
    오픽
    WSL
    소프티어
    티스토리챌린지
    CMake
    생산성
    프로그래머스
    키즈카페
    TDD
    하이볼
    앨리웨이
    필스너
    C++
    dfs
    Clang
    OPIC
    오블완
    Python
    git
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
growing-dev
[Git] 자주 쓰는 명령어, 익숙해지자
상단으로

티스토리툴바