용어 | 설명 |
modified | unmodified 상태에서 수정된 파일, staged가 되기전의 상태 |
staged | staging 영역에 적재된 파일, commit이 되기전의 상태 |
.gitignore | Git에게 여기에 해당하는 파일은 추척하지 말라고 알려주는 파일 |
Snapshot | 현재 작업 폴더의 상태를 저장한 공간 |
branch | 생성 가능한 독립적인 작업 공간. branch들은 서로 영향을 끼치지 않는다. |
HEAD | 현재 작업 중인 brach의 최근 commit을 가르키는 포인터, 그리고 현재 위치 |
Fast Forwad | branch를 merge할때 전자가 후자의 최근 commit을 포함하고, 추가적인 commit이 없으면, 병합 commit이 생성되지 않고 branch 포인터(HEAD)만 이동한다. |
3 way merge | 3개의 branch가 공통된 조상을 가지고 있을때 발생하는 병합 방식이다. 생성된 병합 커밋은 branch 3개의 모든 변경사항을 포함한다. |
명령어 | 설명 |
cat <파일> | 파일의 내용을 표시 |
mv <파일> <파일> | 파일의 이름을 변경. (구버전에선 add를 두번 수행해야 했다.) |
touch <파일> | 파일을 생성 |
vi / vim <파일> | 파일을 수정 |
git init | 현재 폴더를 Git 저장소로 변경 |
git status | 파일의 현재 상태를 확인 (modifier, staged) |
git add <파일> | staging 영역에 파일을 추가하여 staged 상태로 변환 |
git rm <파일> | 파일을 삭제 |
git commit <파일> | -a 옵션으로 git add를 생략 가능. -m "설명" 옵션으로 노트패드 팝업 생략 가능 |
git commit --amend <파일> | staged 상태의 파일을 최근 commit에 추가하거나 수정 |
git diff | 수정된 unstaged 상태의 파일을 표시 |
git diff --staged | commit 되기전에 수정된 staged 상태의 파일을 표시 |
git diff -cached | staging 영역에 있을 때 수정된 파일을 표시 |
git restore <파일> | 파일의 수정을 취소 |
git restore --staged <파일> | staged 상태의 파일을 unstaged 상태로 변경 |
git log | 실행된 commit의 기록을 시간별로 표시. -p 옵션으로 commit 간의 변경 사항을 표시 |
git branch | 존재하는 모든 branch를 표시, -v 옵션으로 마지막 commit 메시지 출력 |
git branch --set-upstream-to= <별칭>/<branch> |
존재하는 로컬 branch와 원격 branch의 추적 관계를 설정 |
git branch <파일> | branch를 생성 |
git branch -d <파일> |
해당 branch를 삭제 |
git checkout <branch> | 다른 brahch 혹은 main/master로 이동, -b 옵션으로 brach 생성과 checkout을 동시에 |
git clone <url> | url의 폴더와 파일을 Git 저장소로 복사, 별칭을 붙일 수 없다. |
git merge <branch> | branch들을 자동으로 합치고 병합 커밋을 생성 |
git remote -v | 등록된 모든 원격 저장소의 별칭을 표시 |
git remote add <별칭> <url>.git | 원격 저장소와 로컬 저장소를 연결 (.git은 관례로 붙는다) [기본 별칭 : origin] |
git pull <별칭> <branch> | 원격 저장소의 데이터를 가져와 해당 branch로 바로 병합 [기본 별칭 : origin] git fetch와 git merge를 합친 단축 명령어다. -u 옵션을 한번 사용하면 후에는 git pull로 생략해도 된다. |
git push <별칭> <branch> | 로컬 저장소의 commit을 원격 저장소로 보내 해당 branch로 바로 병합 -u 옵션을 한번 사용하면 후에는 git push로 생략해도 된다. -f 옵션으로 강제로 push할 수 있다. |
git push <별칭> --delete <branch> | 원격 저장소의 리모트 branch를 삭제 |
git push --set-upstream <별칭> <branch> |
새로운 로컬 branch를 원격 branch로 push하면서 추적 branch로 설정 |
git fetch <별칭> <branch> | 원격 저장소의 최신 변경 사항을 로컬로 가져온다. 병합은 하지 않는다. |
git merge <별칭> <branch> | 로컬 branch와 특정 원격 저장소의 branch를 병합한다. |
git rebase <branch1> <branch2> | branch2의 commit을 branch1 위로 재배치한다. branch2가 생략된 경우 현재 branch가 대상이 된다. |
git rebase --onto <branch1> <branch2> <branch3> |
branch2에서 branch3까지 commit을 가져와서 branch1 위로 재배치한다 |
git config --global alias.<별칭> '<명령어>' |
별칭으로 사용할 단축 명령어를 만든다. |
git log --oneline --decorate --graph --all |
모든 brach의 commit 기록을 요약하고 시각적으로 표시해준다. |
# -u 옵션은 upstream이라고 불리며, 트래킹 branch와 등가 개념이다.
# git rebase 이후에는 git commit를 사용할 필요가 없다. git add로 staging 상태로 만들고 git rebase continue를 사용한다.