728x90
Git 명령어
@2024.03.15
고수준 명령어
💡
끝단 사용자가 많이 사용하며, git의 복잡성을 추상화하여 사용하기 쉽게 만든 명령어
- $
git clone
: 다른 저장소를 복제
- $
git init
: 새로운 git 저장소를 초기화
- $
git add
: 작업 디렉터리의 변경 사항을 스테이징 영역에 추가
- $
git commit
: 스테이징 영역의 변경 사항을 로컬 저장소의 이력에 추가
- $
git pull
: 원격 저장소(github)의 변경 사항을 현재 작업 브랜치와 병합
- $
git push
: 로컬 브랜치의 변경 사항을 원격 저장소(github)에 업로드
- $
git branch
: 브랜치를 생성, 나열, 삭제하는 등의 작업 수행
- $
git merge
: 두 개의 브랜치를 병합
- $
git checkout
: 다른 브랜치로 전환하거나, 작업 디렉터리의 파일을 복원
저수준 명령어
💡
git의 내부 구조와 데이터 모델들을 직접 다루는데 사용되며, 일반적으로 스크립트나, 고급 git 사용자에 의해 사용된다.
- $
git cat-file
: 객체의 내용을 보여주거나 객체의 유형을 확인- $
git cat-file -p 해시 코드
: 지정된 해시 코드를 가진 객체의 내용 출력
- $
- $
git hash-object
: 파일의 내용을부터 SHA-1 해시 값을 계산
- $
git update-index
: 인덱스 파일에 변경 사항을 수동으로 추가
- $
git rev-parse
: git 이름을 해당하는 객체의 해실 변환
- $
git reflog
: 특정 참조의 업데이트 로그 출력
- $
git ls-tree
: 트리 객체의 내용 출력
- $
git pack-objects
: 여러 객체를 하나의 팩 파일로 압축
- $
git unpack-objects
: 팩 파일을 풀어 개별 객체로 변환
git log
GIT 저장소의 커밋 히스토리를 표시하는 데 사용
- 커밋 리스트를 보여주고, 가장 최신 커밋부터 표시된다.
- $
git log --oneline
: 간략하게 한 줄로 커밋 메시지와 해시값 표시
- $
git log --graph
: 커밋 그래프를 표시하며, 커밋 간의 관계를 시작적으로 출력
- $
git log --after yyyy-mm-dd
: 지정된 날짜 이후에 이루어진 커밋만 표시
- $
git log --before yyyy-mm-dd
: 지정된 날짜 이전에 이루어진 커밋만 표시
git reset
reset 명령은 현재 브랜치의 HEAD를 이전 상태로 되돌리는데 사용
현재 저장소의 HEAD가 이전에 가리켰던 커밋의 로그를 볼 수 있다
- 리셋, 체크아웃, 리베이스 등 HEAD가 변경된 모든 작업을 보여주며, 원하는 커밋을 찾을 수 있다.
- 각 행의 첫 번째 열에 있는 해시값은 해당 작업에 대한 식별자
- $
git --no-pager reflog

- $ git reset --soft 이동할 커밋의 해시값/브랜치 이름
- 지정된 커밋으로 이동하나, 스테이징 영역과 작업 디렉터리는 변경되지 않는다.
- $ git reset --mixed 이동할 커밋의 해시값/브랜치 이름
- 기본 옵션으로, HEAD는 지정된 커밋으로 이동하고, 스테이징 영역은 리셋되나, 작업 디렉터리는 변경되지 않는다.
- $ git reset --hard 이동할 커밋의 해시값/브랜치 이름
- HEAD, 스테이징 영역 그리고 작업 디렉터리가 모두 지정된 커밋으로 리셋되며, 모든 로컬 변경 사항과 커밋을 완전히 버리고 싶을 때 사용
git diff
GIT 저장소에서 두 개의 커밋이나, 브랜치 사이 또는 작업 디렉터리와 인덱스 사이의 차이를 보여준다.
- $ git diff
: 변경되지 않고 스테이징 되지 않은 파일들 사이의 차이를 출력
- $ git diff --cached
or $ git diff --staged
: 스테이징 영역과 마지막 커밋 사이의 차이 출력
- $ git diff 브랜치명1 브랜치명2
: 두 브랜치 사이의 차이 출력
- $ git diff 커밋해시1 커밋해시2
: 두 커밋 사이의 차이 출력
git restore
작업 디렉터리의 파일을 특정 상태로 복원하는 데 사용
- 작업 디렉터리의 변경 사항 복원 → $
git restore 파일명
- 파일의 변경 사항을 버리고 마지막 커밋의 상태로 되돌린다.
- 스테이징된 변경 사항 취소 → $
git restore --staged 파일명
- 파일을 스테이징 영역에서 작업 디렉터리로 다시 이동 시킨다.
- 특정 커밋이나 브랜치의 상태로 파일 복원
→ $git restroe --source= 커밋해시 또는 브랜치 파일명
- 스테이징 영역과 작업 디렉터리 양쪽에서 파일 복원
→ $git restore --staged --worktree 파일명
git show
GIT에서 특정 커밋이나 태그 등의 상세 정보를 보여주는데 사용되며, 커밋의 메타데이터와 패치 정보를 출력
- 태그, 트리, 블록 등 다양한 유형의 git 객체에 대한 정보도 조회 가능
- 최근 커밋 상세 정보 출력 → $
git show
- 특정 커밋의 상세 정보 보기 → $
git show 커밋해시
- 커밋의 변경 사항 요약 보기 → $
git show --stat 커밋해시
- 커밋에 의해 변경된 파일들과 각 파일에서 추가되거나 삭제된 줄의 수를 요약해서 출력
- 커밋에서 변경된 파일 이름만 보기 → $
git show --name-only 커밋 해시
- 커밋의 메타 데이터와 함께 변경된 파일의 이름과 상태 보기
→ $git show --name status 커밋해시
git branch
- $
git switch -c 브랜치명
: 브랜치 생성 및 만든 브랜치로 이동- $
git switch -c 새브랜치명 시작점
: 지정된 시작점에서 새로운 브랜치 생성
- $
git branch 새브랜치명 커밋해시
: 커밋을 기반으로 새 브랜치 생성
- $
- $
git branch
: 브랜치 목록 나열, 현재 체크아웃된 브랜치는 *로 표시$ git branch -a
: 로컬 및 원격 브랜치 모두 나열
$ git branch -r
: 원격 브랜치만 나열
- $
git swtich 브랜치명
: 브랜치 이동
- $
git branch -d 브랜치명
: 지정된 브랜치 삭제하며, 브랜치가 이미 다른 브랜치에 병합된 경우에만 삭제를 허용
- $
git branch -D 브랜치명
: 지정된 브랜치를 강제 삭제
- $
git branch -m 기존브랜치명 새브랜치명
: 브랜치 이름 변경
- $
git branch --show-current
: 현재 체크아웃된 브랜치 이름 출력
- $
git branch --list 패턴
: 지정된 패턴과 일치하는 브랜치 목록 나열git branch —list ‘feature*'
⇒ feature로 시작하는 모든 브랜치 나열
git switch
현재 작업 중인 브랜치를 변경하거나, 새 브랜치를 생성 또는 그 브랜치로 전환
- checkout 명령어의 복잡성을 줄이고, 브랜치 관리 작업을 명확하게 분리하기 위해 도입
- 브랜치 전환 → $
git switch 브랜치명
- 브랜치 생성 후 전환 → $
git switch -c 새로운 브랜치명
728x90