Dev/Git

[Git] 기본 명령어 (commit, branch, checkout, merge, rebase)

창문닦이 2019. 2. 11. 23:24

git commit 

save의 개념이다.  Git repository 디렉토리에 있는 모든 파일에 대한 스냅샷을 기록

디렉토리 전체를 복사하여 백업하는 것과 유사하지만, 커밋할 때마다 디렉토리 전체를 복사하지 않음

각 커밋은 저장소의 이전 버전과 다음 버전의 변경내역("delta"라고도 함)을 저장함. 그래서 대부분의 커밋이 그 커밋 위의 부모 커밋을 가리킵니다. 저장소를 복제(clone)하기 위해 모든 변경분(delta)를 풀어내야 하는데, 명령행 결과로 아래 문구를 볼 수 있습니다.


resolving deltas

  • 커밋을 프로젝트의 스냅샷 으로 이해. 커밋은 매우 가볍고 커밋 사이의 전환도 매우 빠르다!!

git branch

깃의 브랜치는 특정 커밋에 대한 참조(reference)에 해당한다. 
브랜치를 많이 만들어도 메모리나 디스크 공간에 부담이 되지 않아 작은 단위로 나누는 것이 좋다!
브랜치 : 하나의 커밋과 그 부모 커밋들을 포함하는 작업 내역

git branch 브랜치명 - 브랜치 생성

git checkout 브랜치명 - 해당 브랜치로 이동

git merge 

git merge : 두 별도의 브랜치를 합치는 방법(1). 두 개의 부모(parent)를 가리키는 특별한 커밋을 만들어 냅니다. 두개의 부모가 있는 커밋이라는 것은 두 부모의 작업내역 + 그 두 부모의 모든 부모들의 작업내역을 포함한다 ( 즉, 두 브랜치를 병합해서 부모의 내역까지 모두 포함한다.)


git merge 브랜치a - 브랜치a로 타 브랜치 병합

git rebase 

git rebase : 두 별도의 브랜치를 합치는 방법(2). 리베이스는 기본적으로 커밋들을 모아서 복사한 뒤, 다른 곳에 저장하는 것.

리베이스를 하면 커밋들의 흐름을 보기 좋게 한 줄로 만들 수 있다는 장점. 리베이스를 쓰면 저장소의 커밋 로그와 이력이 정리된다.


git rebase 브랜치명


사이트로 연습가능한 명령어 -  https://learngitbranching.js.org/

- commit, branch, checkout, cherry-pick, reset, revert, rebase, merge