현재 디렉토리에 새 Git 저장소를 생성합니다.
원격 저장소를 복제합니다.
파일 또는 디렉토리를 스테이징 영역에 추가합니다.
-m "message": 커밋 메시지를 직접 작성합니다.
브랜치를 생성하거나 나열합니다.
-a: 로컬과 원격의 모든 브랜치를 나열합니다.
-d [branch-name]: 브랜치를 안전하게 삭제합니다. (병합된 브랜치만 삭제 가능)
-D [branch-name]: 브랜치를 강제로 삭제합니다. (병합되지 않아도 삭제)
-m [old-branch-name][new-branch-name]: 브랜치 이름을 변경합니다.
-r: 원격 브랜치를 나열합니다.
브랜치를 전환합니다.
-b [new-branch-name]: 새 브랜치를 생성하고 해당 브랜치로 전환합니다.
-B [branch-name]: 브랜치를 생성하거나 이미 존재하는 브랜치를 리셋하고 전환합니다.
-t [remote-branch-name]: 원격 브랜치를 추적하는 브랜치를 생성하고 전환합니다.
지정된 브랜치를 현재 브랜치와 병합합니다.
--abort: 현재 병합 작업을 취소하고 원래 상태로 되돌립니다.
--continue: 충돌이 해결된 후 병합을 계속 진행합니다.
원격 저장소의 변경 사항을 가져와 병합합니다.
--rebase: 원격 저장소의 변경 사항을 가져와 현재 브랜치 위에 리베이스합니다.
--no-rebase: 리베이스를 수행하지 않고 원격 변경 사항을 병합합니다.
로컬 저장소의 변경 사항을 원격 저장소에 푸시합니다.
--force 또는 -f: 원격 브랜치에 강제로 푸시합니다 (주의 필요).
--force-with-lease: 강제 푸시를 수행하기 전에 최근 패치를 확인합니다.
-n 또는 --dry-run: 실제로 푸시하지 않고 푸시 결과를 확인합니다.
--delete : 원격 브랜치를 삭제합니다.
HEAD: 최근 커밋으로 되돌립니다.
--soft: 스테이징은 유지하고 브랜치 포인터만 이동합니다.
--mixed: 스테이징을 언스테이지 상태로 되돌리고 브랜치 포인터 이동합니다.
--hard: 브랜치 포인터를 이동하고 워킹 디렉토리까지 초기화합니다.
지정된 커밋을 취소하는 새로운 커밋을 생성합니다.
커밋 히스토리를 확인합니다
브랜치의 기반이 되는 지점을 변경합니다.
--abort: 현재 진행 중인 rebase를 취소하고 원래의 상태로 되돌립니다.
작업중인 변경사항을 스택에 잠시 저장할 수 있도록 하는 명령어이다.
이를 통해 아직 완료하지 않은 일을 commit하지 않고 나중에 다시 꺼내와 마무리할 수 있다.
(작업도중 다른 브런치로 이동할때 자주 쓰임)
git stash save "message": 변경사항을 스태시에 저장하고 메시지를 추가합니다.
git stash apply: 스태시에 저장된 변경사항을 적용합니다.
git stash pop: 스태시에 저장된 변경사항을 적용하고 스태시 목록에서 제거합니다.
git stash drop: 스태시 목록에서 특정 스태시를 제거합니다.
원격 저장소를 관리합니다.
git remote add [name][url]: 원격 저장소를 추가합니다.
git remote remove [name]: 원격 저장소를 삭제합니다.
git remote rename [old-name][new-name]: 원격 저장소의 이름을 변경합니다.
git remote show [name]: 원격 저장소의 정보를 표시합니다.
두 커밋, 브랜치 또는 스테이징 영역과 워킹 디렉토리 간의 차이점을 표시합니다.
git diff [branch1][branch2]: 두 브랜치 간의 차이점을 표시합니다.
git diff --staged: 스테이징 영역과 최신 커밋 간의 차이점을 표시합니다.
워킹 디렉토리와 스테이징 영역의 상태를 표시합니다.
git status -s 또는 git status --short: 상태를 짧게 한 줄로 표시합니다.
[워킹 디렉토리 (Working Directory)]:
사용자가 파일을 수정하고 작업하는 실제 디렉토리
[스테이징 영역 (Staging Area)]:
커밋을 수행하기 전에, 워킹 디렉토리에서 변경된 파일 중 커밋에 포함할 파일을 선택하여 저장하는 임시 영역이다.
"스테이징 상태"라고도 한다(Git에서 파일 변경 사항을 커밋하기 전에 임시로 저장하는 단계를 말한다.
(이 상태는 변경 사항을 추적하고, 어떤 변경 사항을 다음 커밋에 포함할 것인지를 정의)
[레포지토리 (Repository)]:
커밋된 변경 사항들이 저장되는 곳으로, 프로젝트의 모든 버전 정보를 포함하고 있다.
파일이 수정되면 먼저 워킹 디렉토리에 변경 사항이 발생한다. 그리고 git add 명령어를 사용하여 변경된 파일을 스테이징 영역에 추가할 수 있다.
스테이징 영역에 추가된 파일들은 git commit 명령어를 통해 레포지토리에 영구적으로 저장된다.