git config
협업을 위해 (전역)사용자명/이메일 구성할 때 사용한다.
git config – -global user.name “Your name”
git config – -global user.email “Your email address”
git init
git 저장소를 초기화한다. 저장소나 디렉토리 안에서 이 명령을 실행하기 전까지는 그냥 일반 폴더이다.
이것을 입력한 후에(.git 파일이 생성) 추가적인 git 명령어들을 줄 수 있다.
git add 파일명
untracked files의 파일들을 git가 추적하도록 하거나 파일은 수정했지만 아직 스테이징 영역에 올라가지 않은(Changed but not updated) 파일들을 스테이징 영역에 올린다.
git commit
– parent: 이전 커밋 내용을 의미한다.
– blob : 파일의 이름과 파일의 정보를 의미한다.
– tree : 커밋이 일어난 시점에 작업 디렉토리에 있는 파일의 이름과 파일의 이름이 담고있는 내용 사이의 정보. 그래서 각각의 버전마다 서로 다른 tree를 가지고 있고 그 tree는 파일의 이름과 파일의 정보를 담고 있기 때문에 그 버전이 만들어진 시점의 프로젝트 폴더의 상태를 알 수 있다. 이를 다른말로 “snapshot을 찍다”라고도 한다.
어떤 변경사항이라도 만든 후, 저장소의 “스냅샷”을 찍기 위해 commit을 입력한다. 결과는 object 파일로 저장된다.
커밋하면, 그 시점의 당신의 저장소의 “스냅샷”을 찍어, 프로젝트를 이전의 어떠한 상태로든 재평가하거나 복원할 수 있는 체크포인트를 가질 수 있다.
git status
저장소 상태를 확인 할 수 있다.
어떤 파일이 저장소 안에 있고, 커밋이 필요한 변경사항이 있는지, 현재 저장소의 어떤 브랜치에서 작업하고 있는지 등을 볼 수 있다.
– working directory
– staging area
– cache – repository
인강을 들으면서 이 부분을 가장 잘 설명된 이미지를 찾다가 아래 이미지를 찾았다.
출처 : https://git-scm.com/book/ko/v1/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EA%B8%B0%EC%B4%88
gistory
git을 분석하기 위한 도구로 명령을 내렸을 때 git의 내부에서는 어떤 일이 일어나는가를 분석하면서 git이 어떻게 동작하는가를 스스로 공부하는데 도움을 준다.
gistory 설치 방법
git의 특성 중 하나! 파일이 같은 내용이면 파일의 이름도 같다.
이 원리는 아래 사이트에서 확인 가능하다.
sha1 online