git add 명령어는 변경된 파일들을 commit 하기 전에 staging area에 올리는 과정이다.
git add 명령어로 변경된 파일을 올리게 되면 object
파일(객체)과 index
파일이 생성된다.
object
파일 - 파일의 내용이 담김.index
파일 - object 파일의 이름과 함께 add한 파일의 이름이 담김.예를 들어, 'test' 라는 내용이 담긴 file1.txt를 add 했다면
// blob // object 파일의 내용 // object 파일의 이름은 40자리 문자열로 .git/objects에 위치함.
test
// index 파일의 내용
blob 'object 파일 이름' file1.txt
object 파일의 이름인 40자리 문자열은 파일의 내용인 'test'를 전부 해쉬 테이블에 넣어 도출한 해쉬값이다.
만약 내용이 똑같은 파일 file2.txt를 add 한다면 index 파일은 'object 파일 이름'이 같은 정보가 추가된다.
// index 파일의 내용
blob 'object 파일 이름' file1.txt
blob 'object 파일 이름' file2.txt
git commit 명령어를 실행하게 되면 index 파일의 내용을 옮긴 object 파일과 commit에 대한 정보가 담긴 object 파일이 생성된다.
// index 파일의 내용을 옮긴 object 파일
blob 'object 파일 이름' file1.txt
blob 'object 파일 이름' file2.txt
// commit에 대한 정보가 담긴 object 파일
tree {'object 파일 이름'}
parent {'이전 커밋'}
author {'커밋한 사용자 정보'}
committer {'커밋한 사용자 정보'}
이후 index 파일은 초기화 된다. 이전 커밋에 대한 정보를 갖고 있기 때문에 돌아갈 수 있다.
코드 품질, 코드 가독성을 높이기 위해 브런치 전략을 세운다.
5가지의 대표적인 브런치가 있다.