Git 사용법

자세한 Git 사용법 - 3 커밋(commit)

Everyday Growing Engineer 2022. 9. 21. 12:39

1. 코드의 변화 

git을 사용하면 과거의 commit 시점으로 돌아갈수 있다. 

2. 새파일 생성 및 감지 

a) 파일 생성

  • $ git init
  • $ code index.htm

Unstaged 상태의 index.htm 파일이 생성됨.

 

b) 명령어로 등록: add 명령어

  • $ git add index.htm 

스테이지 영역에 파일을 등록되면 파일은 tracked 상태로 변경

 

c) 파일 등록 취소

tracked -> untracked (--cached 옵션을 함께 사용합니다)

  • $ git rm --cache index.htm

한번이라도 커밋을 했다면 reset 명령어를 사용. 

  • $ git reset HEAD index.htm

d) 등록된 파일의 이름 변경

  • $ git mv 파일이름 새이름

3. 첫번째 커밋

3.1) HEAD

Head는 최종적인 커밋 작업의 위치를 가리킵니다. 새로운 커밋은 부모 커밋을 기반으로 새로운 커밋을 만듬.

최소한 한 번 이상 커밋을 해야만 Head가 존재함

 

3.2) 스냅샷

커밋은 파일변화를 git 저장소에 영구적으로 기록합니다. Git이 다른 버전 관리 도구와 다른 점은 스냅샷 방식을 이용한다.

파일을 복사하는 방식으로 수정본을 관리하면 같은 내용을 반복해서 저장하기에 많은 용량을 차지한다. 

Git은 이러한 시스템적인 단점을 해결하기 위해 변경된 부분을 찾아 수정된 내용만 저장합니다. 이것을 스냅샷 방식이라고 합니다.

 

깃의 스냅샷은 HEAD가 가르키는 커밋을 기반으로 사진을 찍습니다.  이를 스테이지 영역과 비교하여 새로운 커밋에 기록합니다.  

  • 빠르게 버전의 차이점을 처리
  • 용량 적게 사용

3.3) 파일 상태와 커밋

반드시 tracked 상태로 변경해 주어야 합니다. (변경점이 있으면 git add . 해야 한다는 뜻 같다는 것임)

항상! status 명령어로 상태를 확인하는 습관이 필요함.

  • $ git commit
  • $ git commit -a : 파일 등록과 커밋을 동시에
  • $ git commit -m "커밋메시지" : 간단하게 한 줄짜리 커밋 메시지 작성시
  • $ git commit -am "커밋메시지" : 메시지와 파일등록 커밋 동시에
  • $ git commit --allow-empty-message -m ""  : 메시지 없는 빈 커밋을 작성하는 방법
  • $ git commit --amend : 작성한 커밋 메시지를 수정할수 있음

!!! -a 옵션은 이미 추적된 파일 상태가 변경 되었을 때만 함께 사용 가능 !!!

 

4. commit 확인

$ git status : 상태 확인

$ git log : 로그 기록 확인

$ git log --pretty=short  : 첫번째 줄의 커밋 메시지만 출력

$ git show 커밋ID : 특정 커밋의 상세 정보를 확인 방법

 

5 수정된 파일 되돌리기

  • $ git checkout -- 수정파일이름

6. diff 명령어

  • git diff : 워킹 디렉터리 내용과 스테이지 내용의 차이점 출력
  • git diff head : 커밋들끼리 내용 비교 가능
  • git commit -v : 커밋 메시지 작성시 -v옵션을 같이 사용하면 diff 내용을 추가 가능