Git 명령 요약표
Git은 매우 작거나 매우 큰 프로젝트의 버전 관리를 효율적이고 빠르게 처리할 수 있는 오픈 소스 분산 버전 관리 시스템입니다. Git은 Linus Torvalds가 Linux 커널 개발 관리를 돕기 위해 개발한 오픈 소스 버전 관리 소프트웨어입니다.
Git 기초
git init <directory>지정한 디렉토리에 빈 Git 저장소를 생성합니다. 매개변수 없이 실행하면 현재 디렉토리를 Git 저장소로 초기화합니다.
git clone <repo><repo>에 위치한 저장소를 로컬 머신에 복제합니다. 원본 저장소는 로컬 파일 시스템에 있을 수도 있고, HTTP 또는 SSH를 통해 원격 머신에 있을 수도 있습니다.
git config user.name <name>현재 저장소의 모든 커밋에 사용할 작성자 이름을 정의합니다.
git add <directory>다음 커밋을 위해 <directory>의 변경 내용을 추가합니다.
git commit -m "<message>"스테이징된 스냅샷을 커밋하며, <message>를 커밋 메시지로 사용합니다.
git status어떤 파일이 스테이징, 미스테이징 및 추적되지 않은 상태인지 나열합니다.
git log기본 형식을 사용하여 전체 커밋 히스토리를 표시합니다.
git diff작업 디렉토리(git add 전)와 스테이징 영역(git add 후)의 차이점을 비교합니다.
변경 취소
git revert <commit><commit>에서 수행된 모든 변경 사항을 취소하는 새 커밋을 생성하고 이를 현재 브랜치에 적용합니다.
git reset <file>스테이징 영역에서 <file>을 제거하되 작업 디렉토리는 그대로 유지합니다. 이는 변경된 파일을 덮어쓰지 않고 파일의 스테이징을 취소합니다.
git clean -n작업 디렉토리에서 삭제될 파일을 미리 보여줍니다. 실제로 정리를 수행하려면 -n 플래그 대신 -f 플래그를 사용하세요.
히스토리 재작성
git commit --amend최신 커밋을 수정합니다. 작업 디렉토리에 커밋 가능한 변경 사항이 있는 경우, git commit --amend 명령으로 수정하면 작업 디렉토리의 최신 변경 사항도 함께 커밋됩니다.
git rebase <base>현재 브랜치를 <base>로 리베이스합니다. <base>는 커밋 ID, 브랜치 이름, 태그 또는 HEAD가 될 수 있습니다.
git reflog모든 브랜치의 모든 작업 기록(삭제된 커밋 기록 및 리셋 작업 포함)을 확인할 수 있습니다.
Git 브랜치
git branch모든 브랜치를 나열합니다. <branch> 매개변수를 추가하여 이름이 <branch>인 새 브랜치를 생성합니다.
git checkout -b <branch>이름이 <branch>인 새 브랜치를 생성하고 체크아웃합니다. 기존 브랜치를 체크아웃하려면 -b를 제외하고 실행하세요.
git merge <branch><branch> 브랜치를 현재 브랜치에 병합합니다.
원격 저장소
git remote add <name> <url>새 원격 저장소를 추가합니다. 원격 저장소를 추가한 후에는 다른 명령에서 <url>의 단축 이름으로 <name>을 사용할 수 있습니다.
git fetch <remote> <branch>저장소에서 지정한 <branch>의 모든 업데이트 내용을 가져오지만, 로컬 브랜치와 병합하지는 않습니다.
git pull <remote>현재 브랜치의 지정된 원격 복사본을 가져와 즉시 로컬 복사본에 병합합니다.
git push <remote> <branch>브랜치를 <remote>로 푸시하며, 필요한 커밋과 객체도 함께 전송합니다. 원격 저장소에 해당 브랜치가 존재하지 않으면 원격 저장소에 지정된 이름의 브랜치가 생성됩니다.
git config
git config --global user.name <name>현재 사용자의 모든 커밋에 사용할 작성자 이름을 정의합니다.
git config --global user.email <email>현재 사용자의 모든 커밋에 사용할 작성자 이메일을 정의합니다.
git config --global alias.<alias-name> <git-command>Git 명령에 대한 단축키(별칭)를 생성합니다.
git config --system core.editor <editor>컴퓨터의 모든 사용자에 대해 명령에서 사용할 텍스트 편집기를 설정합니다.
git config --global --edit전역 설정 파일을 텍스트 편집기에서 열어 수동으로 편집합니다.
git log
git log -<limit>최근 <limit> 개의 커밋 히스토리를 표시합니다.
git log --oneline각 커밋을 한 줄로 요약하여 커밋 히스토리를 표시합니다.
git log -p커밋 히스토리를 표시하며 각 커밋의 전체 차이점(diff)을 보여줍니다.
git log --stat수정된 파일과 각 파일에서 추가되거나 삭제된 상대적인 줄 수를 포함하여 커밋 히스토리를 표시합니다.
git log --author="<pattern>"특정 작성자의 커밋을 검색합니다.
git log --grep="<pattern>"정규 표현식 매칭을 사용하여 커밋 히스토리를 검색합니다.
git log <since>..<until><since>와 <until> 사이에 발생한 커밋을 표시합니다.
git log -- <file>지정한 파일을 포함하는 커밋 기록만 표시합니다.
git diff
git diff HEAD작업 디렉토리(git add 전)와 저장소(git commit 후)의 파일 차이점을 비교합니다.
git diff --cached스테이징 영역(git add 후)과 저장소(git commit 후)의 파일 차이점을 비교합니다.
git reset
git reset스테이징 영역을 최신 커밋과 일치하도록 리셋하되 작업 디렉토리는 그대로 유지합니다.
git reset --hard스테이징 영역과 작업 디렉토리를 모두 최신 커밋으로 리셋하며 작업 디렉토리의 모든 변경 사항을 덮어씁니다.
git reset <commit>현재 브랜치의 포인터를 <commit>으로 되돌리고 스테이징 영역을 리셋하지만 작업 디렉토리는 변경하지 않습니다.
git reset --hard <commit>위와 동일하지만 스테이징 영역과 작업 디렉토리를 모두 리셋합니다. 커밋되지 않은 변경 사항과 <commit> 이후의 모든 커밋을 삭제합니다.
git pull
git pull --rebase <remote>현재 브랜치의 원격 복사본을 가져와 로컬 복사본 위에 리베이스합니다. 브랜치 통합 시 병합 대신 git rebase를 사용합니다.
git push
git push <remote> --force강제로 푸시합니다.
git push <remote> --all모든 로컬 브랜치를 지정한 원격 저장소로 푸시합니다.
git push <remote> --tags모든 로컬 태그를 원격 저장소로 푸시합니다.