git init & git add & git commit

hwibaski·2021년 8월 30일
0

etc

목록 보기
3/3

Intro 🤔

  • 이제 git이 무엇인지는 알겠다. 그럼 어떻게 사용할까? 오늘은 우선 git initgit add 그리고 git commit에 대해 알아보자.



git init


git init은 initialize의 줄임말로 git을 사용하겠다는 명령을 내린다. 그리고 실제적으로 .git이라는 숨김 파일이 생성된다.

가상의 상황을 가정해보자. my_project라는 디렉토리를 생성했고, 그 디렉토리 안으로 들어간다.

$ cd /Users/khm/my_project
$ git init
$ ls -al

ls -al 명령어를 입력해서 숨김 파일까지 확인해보자. .git 디렉토리가 생성되었다. git init을 사용해도 어떠한 버전관리도 시작되지 않는다. git을 사용할 준비만 마친 상황이다.



git add


버전 관리를 시작하기 위해선 관리할 파일이나 폴더가 있어야 한다.
readme.md 파일을 만들어보자.readme.md 파일을 만들었고, 내용은 git test로 임의로 입력했다. 그 후 gst 혹은 git status 명령어로 현재의 git의 상태를 확인할 수 있다.

$ vi readme.md

$ gst
$ git status

신기하게 새로 생긴 파일을 git이 파악하고 있다. untracked file은 아직 추적이 시작되지 않은 파일로 우선 staging area에 올릴 필요가 있다. staging area에 추가한 파일만 commit을 진행할 수 있다. commit이 현재의 파일 상황을 사진을 찍어서 보관하는 거라면 add는 사진을 찍기 전 작업대에 사진을 올려놓는 일이라고 생각할 수 있겠다. git add . 명령어를 입력해보자. git add .에서 .은 모든 파일을 staging area에 add하겠다는 의미다. git add readme.md로 직접 해당 파일을 add할 수도 있다. 다시 gst를 확인해보자.

git이 수정된 파일을 staging area에 올렸다. commit할 변화를 감지했고, 여기서 터미널에 안내된 바와 같이 git rm --cached readme.md를 입력하면 staging area에서 해당파일을 제거한다.(물론, staging area에서만 제거하지 실제 파일이 삭제되지 않는다.)



git commit


이제 사진을 찍을 시간이 왔다. git commit -m '[commit message]'를 입력해서 현재의 상태를 저장하자.

$ git commit -m 'ADD: readme.me 추가'

커밋이 완료됐다.

변화된 사항이 없기 때문에 더 이상 추적할 파일이 없다.

$ git log

git log를 찍어보니 커밋이 정상적으로 완료됐다. 우리는 언제든지 위의 시점과 같은 파일 상태로 이동할 수 있게 됐다.


commit 시점으로 돌아가기


빠르게 지금의 상태를 변경해보자. 같은 파일이지만 내용을 수정했고 커밋을 진행했다.

log를 찍어본다.

이동을 원하는 시점의 커밋 아이디(앞 7자리)를 복사한 뒤 checkout명령어를 실행해서 해당 시점의 커밋으로 돌아간다.

$ git checkout 4f50f8c

readme.md를 확인해본 결과, modified는 사라졌고 초기에 작성한 git test만 남아있다. 신기하다..
여기서 다시 최신 커밋으로 돌아갈 수도 있다.

$ git checkout -

0개의 댓글