작업 폴더 | 인덱스 | 저장소 |
---|---|---|
실제 파일들로 이루어짐 | 준비 영역 (add) | 최종 확정본 (commit) |
: 새로운 git 저장소(repository)를 생성
: 설정 내용을 확인 또는 변경
$ git config --global user.name "username"
$ git config --global user.email "useremail"
$ git config --unset --global user.name
$ git config --unset --global user.email
$ git config --list
: 파일의 상태(작업 폴더와 인덱스의 상태)를 확인
: 작업 폴더상의 변경을 인덱스에 추가
$ git add <파일/디렉토리 경로>
$ git add .
$ git add -A
- git add -A 는 작업 폴더 상에 어디에 위치하든 항상 동일하게 모든 변경 내용을 인덱스로 넘김
- git add . 는 명령어를 실행한 폴더 이하에서 발생한 변경 내용만 포함하며, 해당 폴더 기준으로 상위 폴더의 변경 내용을 포함하지 않고 넘김
$ git add -p
: 파일을 삭제
$ git rm --cached
: 변경된 내용을 저장소에 추가
$ git commit -m "설명"
$ git commit -am "설명"
$ git commit --amend
: 커밋 기록 조회
-> 가장 위에 나오는 내역이 가장 최근 내역
: 특정 지점의 과거 커밋으로 이동하고 이동된 이후의 커밋 삭제
$ git reset --hard "돌아가려는 커밋"
$ git reset --soft "돌아가려는 커밋"
$ git reset --mixed "돌아가려는 커밋"
: 특정 지점의 과거 커밋으로 이동하고 변경 내역을 유지
$ git revert "되돌릴 커밋"
: 현재 내가 위치한(로컬에서의) 브랜치 확인
$ git branch "브랜치명"
$ git brach -d "브랜치명"
$ git branch -a
: 브랜치로 이동
$ git switch "브랜치명"
$ git switch -c "브랜치명"
: 브랜치의 변화 가져옴
$ git merge "가져올 브랜치명`
: 현재 브랜치의 base를 합칠 브랜치가 가리키는 커밋을 가리키게 하고 저장해두었던 변경사항을 차례대로 적용
$ git rebase "합칠 브랜치명"
: 원격 저장소 관리
$ git remote add "원격저장소명" "주소"
$ git remote remove "원격저장소명"
: 원격저장소에 커밋을 저장
$ git push "원격저장소명" "브랜치명"
$ git push -d "원격저장소명" "브랜치명"
: 원격저장소의 커밋들을 로컬저장소로 가져와서 merge
$ git pull "원격저장소명" "브랜치명"
: 원격저장소의 프로젝트를 내려받음
$ git clone "저장소주소"
: 원격저장소의 커밋들을 로컬저장소로 가져옴
-> 원래 내용과 바뀐 내용과의 차이를 알 수 있음