git commit
save의 개념이다. Git repository 디렉토리에 있는 모든 파일에 대한 스냅샷을 기록.
디렉토리 전체를 복사하여 백업하는 것과 유사하지만, 커밋할 때마다 디렉토리 전체를 복사하지 않음.
각 커밋은 저장소의 이전 버전과 다음 버전의 변경내역("delta"라고도 함)을 저장함. 그래서 대부분의 커밋이 그 커밋 위의 부모 커밋을 가리킵니다. 저장소를 복제(clone)하기 위해 모든 변경분(delta)를 풀어내야 하는데, 명령행 결과로 아래 문구를 볼 수 있습니다.
resolving deltas
- 커밋을 프로젝트의 스냅샷 으로 이해. 커밋은 매우 가볍고 커밋 사이의 전환도 매우 빠르다!!
git branch
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
'Dev > Git' 카테고리의 다른 글
[Git] push error - unpack failed: index-pack abnormal exit (0) | 2019.12.31 |
---|---|
[Git] fetch 후 에러(Failed to lock refs/heads/master) (0) | 2019.06.10 |
[Git] command line 버전관리 (0) | 2019.02.16 |
[Git] cherry-pick, Interactive Rebase (0) | 2019.02.14 |
[Git] Head, Relative Ref, reset, revert (0) | 2019.02.12 |