GIt 명령어 배우기
git 명령어 종류
- commit
- branch
- checkout
- cherry-pick
- reset
- revert
- rebase
- merge
commit
commit은 git 저장소에 내 디렉터리의 모든 파일에 대한 스냅샷을 기록하는 것입니다.
git은 가능한 커밋을 가볍게 유지하고자 하기 때문에, 커밋할 때마다 디렉토리 전체를 복사하진 않습니다. 각 커밋은 저장소의 이전 버전과 다음 버전의 변경내역("delta"라고함)을 저장합니다.
그래서 대부분의 커밋이 그 커밋 위의 부모 커밋을 가리킵니다
저장소를 복제(clone)하려면 모든 변경분(delta)를 풀어내야 하는데, 이 때문에 명령행 결과로 아래 문구를 볼수 있습니다 .
resolving deltas
git commit
branch
깃의 브랜치도 commit처럼 가볍습니다 .
브랜치는 특정 커밋에 대한 참조(reference)에 지나지 않습니다 .
브랜치를 많이 만들어도 메모리나 디스크 공간에 부담이 되지않기 때문에,
작업을 커다란 브랜치로 만들기보다 , 작은 단위로 잘게 나누는것이 좋습니다.
브랜치는 나뭇가지처럼 새로운 길을 만드는것입니다!
checkout
checkout명령은 명령 브랜치로 이동합니다 .
- branch와 checkout 명령어 사용하기
git checkout bugFix
git merge bugFix
rebase
rebase명령어는 브랜치 끼리 작업을 합치는 두 번째 방법입니다.
리베이스는 기본적으로 커밋들을 모아서 복사한 뒤 , 다른곳에 떨궈 놓는 것입니다.
리베이스를 하면 커밋들의 흐름을 보기좋게 한 줄로 만들 수 있다는 장점이 있습니다.
리베이스를 사용하면 저장소의 커밋 로그와 이력이 한결 깨긋해 집니다.
l git rebase b l
l -------------->> l
a b b
a
a라는 브랜치를 b라는 브랜치 위로 직접 옮겨 놓으려고 하면, 실제로는 두 기능을 따로따로 개발했지만 마치 순서대로 개발한것 처럼 보이게합니다. git rebase 명령어로 가능합니다
하지만 위 상태여도
a의 커밋은 b커밋위에 올라가있지만(이것은 복사본입니다)
a 커밋은 어딘가에 남아있습니다. 그리고 b도 아직 그대로인 상태입니다.
b라는 브랜치를 선택하고 a브랜치로 rebase 하게되면
b가 a의 부모쪽에 있었기 때문에 단순히 그 브랜치를 더 앞쪽의 커밋을 가리키게 이동하는 것이 전부입니다.
'Git' 카테고리의 다른 글
GIt 명령어 배우기 -3 cherry-pick,인터렉티브 리베이스 (4) | 2019.02.11 |
---|---|
GIt 명령어 배우기 -2 커밋트리[Commit tree]에서 이동하는 방법( branch -f , reset, revert , ^, ~) (4) | 2019.02.07 |
GIt README 작성하기 (4) | 2019.02.01 |
gitignore 적용하기 (255) | 2019.01.29 |
gitlab 기존 프로젝트 올리기 (972) | 2019.01.29 |
댓글