Git 커맨드 정리
자주 사용하는 그리고 알아두면 좋은 Git 커맨드를 정리해 보자
개발자라면 보통 형상, 소스 관리 툴을 모두 사용할 것이라 믿는다. 그런 것을 전혀 모른다면, ..... 반성하시라. 아무튼 그런 형상 관리 툴 중 현재 내가 사용하고 있는 최첨단 Git.... 쿨럭. Cheat Sheet 개념으로 정리해 본다.
Git의 완전 기초 개념
Git 커맨드 설명을 위해 혹시나 git을 모르는 사람, 혹은 설명에서 나타나는 개념 확정을 위해 간단하게 아주 기본 개념을 설명해 둔다.
파일의 라이프사이클
Git은 파일을 아래와 같이 4단계로 구분한다. 개발자는 주로 Untracked 상태의 파일을 생성하여 Git에서 관리하도록 전환처리, Unmodified 파일을 수정하여 Modified, Staged 상태 변경 후 Git에 수정사항을 반영하여 다시 Unmodified로 확정하는 작업을 주로 한다.
- Untracked: Git에 의해 추적되지 않는 파일, untracked 제외한 다른 모든 단계는 Git에 의해 파일이 추적 & 관리되는 상태
- Unmodified: 현재 수정 사항 없는 상태
- Modified: 파일 수정 사항 존재
- Staged: 파일 Commit 준비 상태, 파일 수정 사항을 Git에 업데이트하기로 결정
분산 버전 관리 시스템
Git은 분산 버전 관리 시스템이다. Git은 리모트 저장소를 통해 여러 작업자가 공유할 소스를 관리한다. 그리고 모든 작업자는 리모트 저장소의 모든 내역을 자신의 로컬에 복사하여 버전 관리를 수행한다.
개발자는 자신의 소스 수정 및 관리 업무를 로컬에서 처리한다. 로컬에서 처리가 완료되어 배포에 필요한 수정 사항 혹은 공동 작업자와 공유가 필요한 수정사항을 리모트에 반영한다.
자주 사용하는 Git 커맨드
분류 | 명령 | 설명 |
---|---|---|
소스 다운 | git clone ssh://[Git 경로].git | |
git clone https://[URL] | ||
수정 소스 반영 준비 | git status | 현재 git의 파일 수정 상태 확인 |
git diff | 수정 내역 확인 | |
git log | 현재 브랜치 commit 내역 확인 | |
git add [파일명] | 선택한 파일만 Staged 상태 전환 | |
git add -A | 수정한 모든 파일 Staged 상태 전환 | |
수정 소스 반영 | git commit -m "커밋 메시지" | Staged 상태의 파일 commit, 수정 사항을 버전 관리에 추가하여 Unmodified로 전환 |
브랜치 기본 | git checkout -b [브랜치 이름] | 브랜치 생성 후 해당 브랜치로 작업 공간 전환 |
git merge <합병 대상 브랜치 이름> | 현재 브랜치를 합병 대상 브랜치로 병합 | |
git diff <브랜치1> <브랜치2> | 브랜치 1, 2의 차이점 확인 | |
수정 사항 리모트에 업데이트 | git push origin master | 로컬의 master 수정 사항을 리모트(origin)에 반영 |
git push origin BRANCH | 로컬의 선택한 브랜치 BRANCH 수정 사항을 리모트(origin)에 반영 |
알아두면 유용한 Git 커맨드
분류 | 명령 | 설명 |
---|---|---|
저장소 관리 | git init | 새로운 Git 저장소 생성 |
git tag - a "태그 이름" -m "로그" | 태그 생성 | |
로그 | git log --pretty=oneline or git log --oneline |
각 커밋 한 줄 보기 |
git log --grep "검색할 내용" | 커밋 로그 검색 | |
파일 상태 | git reset HEAD | 전체 파일 add 처리 취소 |
git reset HEAD [파일 이름] | 특정 파일 add 처리 취소 | |
git reset --soft HEAD^ | 커밋 취소 후 커밋 한 파일을 Staged 상태로 변경 | |
git reset --hard HEAD | 현재 작업 디렉터리를 리모트 저장소의 마지막 commit 상태로 전환(작업 사항 삭제 주의!!) | |
git reset HEAD^ git push origin [브랜치] -f |
마지막 push 취소(작업 저장소의 마지막 commit을 취소하고 해당 내용을 리모트 저장소에 강제 적용) |