소프트웨어의 변경 사항을 관리하기 위한 분산형 버전 관리 시스템
git add
)git commit
)git add
: 파일을 Staging Area에 추가git status
: 추적되고 있는 파일들의 상태 확인git commit
: Staged 파일들을 담은 커밋 스냅샷 추가--amend
: 가장 최근의 커밋을 새 커밋으로 덮어 씀git reset
: 이전 커밋 상태로 돌아감--hard
: 현재의 변경 사항을 버림--soft
: 현재의 변경 사항을 Staged 상태로 남김git rm
: 커밋되어 있는 파일 삭제 (실제로도 삭제됨)--cached
: Staging Area에서만 제거하고, 실제로는 삭제하지 않음git mv
: 간편히 파일 이동git checkout -- <file>
or git restore <file>
: 파일 변경 사항 복원git clean
: 현재의 변경 사항을 모두 버림-x
: .gitignore
에 등록된 파일마저 삭제함git branch
: 브랜치 목록 조회-u
: Upstream 브랜치 설정 (원격 저장소의 브랜치를 트래킹)-D
: 브랜치 삭제git checkout <branch>
or git switch <branch>
: 브랜치 스위칭git merge
: 현재 브랜치에서 해당 브랜치와 병합 (충돌 시 병합 커밋으로 해결)git log
: 현재 브랜치의 커밋 히스토리 조회git stash
: 현재의 변경 사항을 임시 저장소에 보관-m
: 메시지와 함께 보관list
: 스태시된 항목 조회apply
: 스태시 항목의 변경 사항을 적용pop
: apply
와 함께 스태시 항목 제거drop
: 스태시 항목 제거git fetch
: 현재 브랜치의 Upstream 브랜치 히스토리를 최신 버전으로 갱신--all
: 원격 저장소의 모든 Upstream 브랜치를 최신으로 가져옴git pull
: git fetch
로 최신 커밋들을 가져오고, git merge
로 현재 브랜치와 병합-r
: merge
대신 rebase
명령을 수행함git push
: 원격 저장소의 브랜치로 커밋 업로드--delete <branch>
: 원격 저장소의 특정 브랜치 삭제git remote
: 원격 저장소 목록 조회add <name> <url>
: 원격 저장소 등록git cherry-pick
: 다른 브랜치의 커밋 하나를 복사하여 HEAD 위에 추가git rebase <other>
: 다른 브랜치의 여러 커밋들을 복사하여 HEAD 위에 추가<branch>
: 해당 브랜치로 스위칭하여 수행-i <range>
: 히스토리를 대화식으로 자유롭게 수정reword
: 커밋 메시지 수정edit
: 해당 커밋을 HEAD로 멈춤 (작업 후 --continue
)squash
: 변경 내용을 직전 커밋으로 통합 (커밋 메시지는 병합)fixup
: 변경 내용을 직전 커밋으로 통합 (커밋 메시지 버림)drop
: 커밋 제거git revert
: 현재 브랜치의 한 커밋을 제거하고, 해당 변경 사항을 커밋Git이 트래킹하지 않는 파일들을 명시하기 위한 파일
git rm --cached
로 제거해야 함)git rm --cached -r . ; git add .
명령으로 트래킹 목록을 갱신함Git 저장소 호스팅을 제공하는 웹 사이트
프로젝트 관리자에게 Merge를 요청하는 Contribution 기능
Merge
: PR 브랜치의 커밋들과 함께 병합 커밋을 추가함Squash and merge
: PR 커밋들을 하나의 커밋으로 통합하여 추가함Rebase and merge
: PR 커밋들을 복사하여 rebase
방식으로 추가함