Note: 개인 공부용으로 모든 자료는 거의 복붙형태이고 내용을 재구성하기만 했습니다. 공부하시려면 제가 공부한 사이트에 들어가서 하시는 것을 추천합니다
변경된 파일 전체를 저장하지 않고, 파일에서 변경된 부분을 찾아 수정된 내용만 저장합니다. 마치 변화된 부분만 찾아 사진을 찍는 것과 같다고 하여 스냅샷 방식이라고 합니다.
master
브랜치를 만든다. 처음 커밋하면 이 master
브랜치가 생성된 커밋을 가리킨다. 이후 커밋을 만들면 master
브랜치는 자동으로 가장 마지막 커밋을 가리킨다.note: Git 버전 관리 시스템에서 "master" 브랜치는 특별하지 않다. 다른 브랜치와 다른 것이 없다. 다만 모든 저장소에서 "master" 브랜치가 존재하는 이유는 git init 명령으로 초기화할 때 자동으로 만들어진 이 브랜치를 애써 다른 이름으로 변경하지 않기 때문이다.
$ git branch testing
master
브랜치를 가리키고 있다.git checkout
명령으로 다른 브랜치로 이동할 수 있다.$ git checkout testing
이렇게 하면 HEAD는 testing 브랜치를 가리킨다.
여기서 커밋을 새로하게되면.....
master
는 이전 커밋을 가리키고 있다.master
브랜치로 돌아가보자$ git checkout master
master
브랜치가 가리키는 커밋을 HEAD가 가리키게 하고 워킹 디렉토리의 파일도 그 시점으로 되돌려 놓았다.testing
브랜치에서 임시로 작업하고 원래 master
브랜치로 돌아와서 하던일을 계속 할 수 있다.note: 브랜치를 이동하면 워킹 디렉토리의 파일이 변경된다는 점을 기억해야 한다. 이전에 작업했던 브랜치로 이동하면 워킹 디렉토리의 파일은 그 브랜치에서 가장 마지막으로 했던 작업 내용으로 변경된다. 파일 변경시 문제가 있어 브랜치를 이동시키는게 불가한 경우엔 Git은 브랜치 이동 명령을 수행하지 않는다
master
를 가리키고 있는 상태에서, 파일을 수정하고 다시 커밋하면 다음과 같다브랜치 명명 규칙 참고:
https://qastack.kr/programming/273695/what-are-some-examples-of-commonly-used-practices-for-naming-git-branches