본문 바로가기
Git

Git 명령어

by 융디's 2024. 4. 1.
728x90
Git 명령어

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

'Git' 카테고리의 다른 글

Git 협업  (0) 2024.04.01
GitHub  (0) 2024.04.01
Git 프로젝트  (0) 2024.04.01
Git의 구조  (0) 2024.04.01
Visual Studio 설치  (0) 2024.03.31