소프트웨어 엔지니어가 실제로 알아야 할 20개 이상의 Git 명령어
Source: Dev.to
Git Commands Basics
git init
현재 디렉터리에 새로운 Git 저장소를 생성합니다.
git init
git clone
원격 저장소를 로컬 머신으로 다운로드합니다.
git clone
git status
파일들의 현재 상태(수정됨, 스테이징됨, 추적되지 않음)를 보여줍니다.
git status
git add
파일을 스테이징하여 다음 커밋에 포함되도록 합니다.
git add .
git add file.js
git commit
스테이징된 변경을 메시지와 함께 스냅샷으로 저장합니다.
git commit -m "message"
git push
로컬 커밋을 원격 저장소에 업로드합니다.
git push origin main
git pull
원격 변경을 가져와 현재 브랜치에 병합합니다.
git pull
git branch
브랜치를 목록화하거나 새 브랜치를 생성합니다.
git branch
git branch feature-x
git checkout
브랜치를 전환하거나 파일을 복원합니다.
git checkout feature-x
git switch
브랜치를 전환하는 더 깔끔하고 현대적인 방법입니다.
git switch main
git merge
다른 브랜치를 현재 브랜치에 병합합니다.
git merge feature-x
git log
현재 브랜치의 커밋 히스토리를 보여줍니다.
git log --oneline --graph
git reset
HEAD를 이동하고 선택적으로 커밋이나 변경을 버립니다.
git reset --soft HEAD~1
git reset --hard HEAD~1
git revert
이전 커밋을 안전하게 되돌리는 새 커밋을 생성합니다.
git revert
git checkout --
특정 파일에 대한 로컬 변경을 버립니다.
git checkout -- index.js
git stash
커밋되지 않은 변경을 일시적으로 저장합니다.
git stash
git stash pop
git stash list
저장된 모든 스태시를 보여줍니다.
git stash list
git remote -v
설정된 원격 저장소를 표시합니다.
git remote -v
git fetch
원격 변경을 다운로드하지만 병합하지는 않습니다.
git fetch
git diff
파일, 커밋, 혹은 스테이징 영역 간의 차이를 보여줍니다.
git diff
git diff --staged
git blame
파일의 각 라인을 마지막으로 수정한 사람을 보여줍니다.
git blame file.js
git show
특정 커밋에 대한 자세한 정보를 표시합니다.
git show
git clean
작업 디렉터리에서 추적되지 않은 파일을 제거합니다.
git clean -fd
git reflog
삭제되었거나 잃어버린 커밋까지 포함해 HEAD의 모든 이동을 보여줍니다.
git reflog
Tips for Senior Engineers
git status를 지속적으로 확인하세요.- 공유 브랜치에서는
git reset보다git revert를 선호하세요. - 위험한 병합을 하기 전에
git fetch를 사용하세요. - 문제가 발생했을 때는
git reflog에 의존하세요.
Git은 단순한 버전 관리가 아니라 여러분의 안전망입니다. 모든 명령을 외울 필요는 없으며, 문제가 생겼을 때 복구할 수 있을 정도로 충분히 이해하는 것이 중요합니다. 이 명령들을 마스터하면 더 빠르게 작업하고, 패닉을 줄이며, 협업이 개선됩니다. Git을 모르는 것은 엔지니어로서의 역량을 떨어뜨릴 수 있습니다.