Git

Git 명령어 정리(Git cheat sheet)

나야, 웅이 2025. 2. 3. 16:45
728x90
반응형
SMALL

https://education.github.com/git-cheat-sheet-education.pdf

Setup & Init

  • git init: 기존 디렉터리를 Git 리포지토리로 초기화하기
    • git init을 하면, 해당 폴더에 .git 파일이 생성됨
  • git clone [url]: 전체 리포지토리 가져오기

Stage & Snapshot

  • git status: 수정된 파일 목록 확인
  • git add [file]: 워킹 디렉토리의 변경 사항을 스테이징 영역에 올림
  • git reset [file]: 워킹 디렉토리의 변경 사항을 유지하면서 파일 스테이징 해제
  • git diff: 워킹 디렉토리의 변경사항을 보여줌
    • git diff --staged: 스테이징된 파일과 마지막 커밋의 차이를 보여줌
  • git commit -m "[descriptive message]": 스테이징된 파일을 새로운 커밋 냅샷으로 커밋

Branch & Merge

브랜치에서 작업 격리, 컨텍스트 변경 및 변경 사항 통합하기

  • git branch: 현재 존재하는 브랜치들을 나열, 현재 활성 브랜치 옆에 *가 표시됨
  • git branch [branch-name]: 현재 커밋에 새 브랜치를 생성함
  • git checkout [branch-name]: 워킹 디렉토리의 브랜치를 지정한 다른 브랜치로 전환함
  • git merge [branch]: 지정된 브랜치의 기록을 현재 브랜치에 병합
  • git log: 현재 브랜치 기록의 모든 커밋을 표시함

Inspect & Compare

로그, 다이어그램 및 object 정보 검토

  • git log: 현재 활성 브랜치에 대한 커밋 기록 표시
  • git log branchB..branchA: branchA에 존재하지만, branchB에는 없는 커밋(commit)들의 로그를 보여줌
    • git log branchB --not branchA: 동일하게 사용됨
    • 두 브랜치 간의 차이를 확인할 때 유용함
  • git log --follow [file]: 특정 파일의 커밋 이력을 추적하는 데, 특히 그 파일이 이동하거나 이름이 변경된 경우에도 이력을 이어서 보여줌
  • git diff branchB...branchA: branchB와 branchA의 공통 조상(merge base)부터 branchA까지의 변경 사항을 보여줌 즉, branchB와 branchA가 갈라진 시점 이후에 branchA에서 이루어진 변경 내용이 무엇인지를 비교할 때 유용
  • git show [SHA]: 지정한 커밋의 상세 정보를 출력하는 git 명령어
    • [SHA] : 확인하고자 하는 커밋의 해시(hash)를 의미
    • 확인할 수 있는 상세 정보:
      • 커밋 메타데이터:
        • 커밋 해시, 작성자(autor), 작성 날짜(date) 및 커밋 메시지(commit message) 등이 출력
      • 변경 사항(diff):
        • 해당 커밋에서 변경된 파일의 차이(diff)가 함께 표시되어, 어떤 내용이 추가되거나 삭제 되었는지 확인할 수 있다.

Tracking PATH Changes

  • git rm [file]: git의 버전 관리에서 해당 파일을 제거하는 데 사용
    • 워킹 디렉토리에서 사용:
      • 실제 파일 시스템 상에서 해당 파일 삭제
    • 스테이징 영역에서 사용:
      • 스테이징 영역에서도 해당 파일이 삭제된 것으로 표시되며, 이후 커밋시 파일 삭제가 기록
  • git mv [existing-path] [new-path]: Git 리포지토리 내에서 파일이나 디렉토리의 이름 변경(renaming) 또는 이동(moving)을 수행하는 데 사용
    • 파일경로와 파일이름을 동시에 주면, 파일이름 변경 및 파일이동이 동시에 동작
  • git log --stat -M: Git 로그를 출력할 때, 각 커밋에 대한 통계 정보와 함께 파일 이동(renames) 정보를 감지하여 보여줌

Share & Update

  • git remote add [alias] [url]: 로컬 Git 리포지토리에 원격 저장소(remote repository)를 등록하는 데 사용
    • git remote -v: 원격 저장소를 추가한 후, 등록된 원격 리포지토리 목록을 확인할 수 있음
  • git fetch [alias]: 로컬 리포지토리에서 지정한 원격 저장소(별칭, alias)에 있는 최신 변경 사항(커밋, 브랜치, 태그 등)을 다운로드하여 업데이트하는 역할을 함
    • 실제 로컬 브랜치에는 변경 사항이 병합되지 않음 즉, 원격 저장소의 최신 상태를 로컬에 반영하지만, 현재 작업 중인 브랜치에 자동으로 합쳐지지는 않는다.
  • git merge [alias]/[branch]: 원격 저장소의 특정 브랜치의 변경 사항을 현재 체크아웃한 로컬 브랜치에 병합(merge)하는 데 사용
    • [alias]: 원격 저장소의 별칭(ex, origin)
    • [branch]: 병합하고자 하는 원격 브랜치의 이름
  • git push [alias] [branch]: 로컬 리포지토리의 특정 브랜치에 있는 커밋들을 원격 저장소에 업로드(push)하는 데 사용
    • [alias]: 원격 저장소의 별칭
    • [branch]: 로컬에서 작업 중인 브랜치
  • git pull: 로컬 리포지토리에서 원격 저장소의 최신 변경 사항을 가져와서 현재 체크아웃한 브랜치에 자동으로 병합(merge)
    • git fetch  git merge 단계를 한 번에 수행하는 단축 명령어이다.
728x90
반응형
LIST

'Git' 카테고리의 다른 글

Git 작업 영역  (0) 2025.02.03
Git Flow / Github Flow  (0) 2025.02.03