인프런의 강민철님의 모두의 깃 깃허브 강의를 참조하였습니다.
$ git init
git init 명령어는 소스트리에서 로컬저장소를 만들었던 것처럼 명령어로 로컬저장소를 만드는 명령어이다.
터미널에 특정 디렉터리에 가서 해당 명령어를 치면 위와 같이 나온다.
그리고 그 디렉터리로 가보면 빈 디렉터리에 .git이라는 숨김 디렉터리가 보일 것이다.
git status
git status 명령어는 현재 작업디렉터리 상태 확인 명령어이다.
먼저 실습을 해보자. 해당 디렉터리에 변경사항을 만들고 명령어를 입력하자.
그럼 위와 같이 나오는데 추적하지 않는 파일에 우리가 방금 작성한 파일명이 나온다.
🙋🏻 추적하지 않는 파일이란?
git이 기존에 변경사항을 추적하고 있지 않았던 파일 = 갑자기 생긴 파일
git add 파일 이름
git add 파일이름을 작성하면 해당파일의 변경사항을 스테이지에 올리는 명령어이다.
위와 같이 a.txt를 스테이지에 올리고 git status를 입력하니 위와 같이 나온다.
🙋🏻 커밋할 변경 사항이란?
커밋이 될 준비가 완료된 파일로서 a.txt가 스테이지에 올라갔다고 볼 수 있다.
그런데 예를 들어 여러 변경사항이 있고 이것을 동시에 스테이지에 올릴려면 변경사항이 발생한 파일명들을 전부 써줘야 할까? 뭔가 비효율적일 것이다. 그래서 아래의 명령어를 통해 한번에 변경사항들을 스테이지에 올릴 수 있다.
git add . // 현재 디렉토리에 발생한 모든 변경사항에 대해서 스테이지 추가
위와 같이 입력하면 아래처럼 나올 것이다.
git commit -m "커밋 메세지"
이제 스테이지에 올린 변경사항들을 버전으로 만드는 명령어는 바로 위에 처럼 작성해주면 된다.
그러면 새로운 버전이 생긴 것이다.
그런데 여기서 궁금한게 우리가 소스트리를 학습할 때 커밋 메세지는 위처럼 제목만 작성할 수 있지만 본문도 작성할 수 있다고 학습했다. 그러면 어떻게 본문 내용을 작성할까?
git commit
위의 명령어를 치면 아래와 같이 vim 화면이 나올 것이다.
🙋🏻 vim이란?
터미널 내부에서 파일을 수정하고 삭제할 수 있는 편집기
🛠 vim 사용시 주요 키
a 혹은 i -> 입력모드 진입
ESC -> 입력모드 탈출 (명령모드 진입)
:w -> 작성한 파일 저장
:q -> vim 나가기
:wq -> 작성한 파일 저장하고 나가기
그러면 이제 커밋 메세지 제목과 본문 내용을 작성해보겠다.
위 처럼 작성을 해보자. a 혹은 i키를 눌러서 아래 INSERT가 나오면 입력모드가 진입이 된 것이고 커밋 메세지 작성을 한다.
그리고 작성을 했으면 :wq를 눌러 저장 후 나가자.
그런데 여기서 또 중요사항이 있다. git add와 git commit을 동시에 할 수도 있는 명령어가 있다.
git commit -am "커밋 메세지"
한번이라도 커밋을 했거나 깃이 변경사항을 추적하고 있는 파일에 대해서 위의 명령어를 통해 스테이지에 추가 및 커밋을 동시에 할 수 있다.
git log
지금까지 만든 버전 확인 명령어는 git log이다.
터미널에 git log를 치면 아래와 같이 나온다.
해당 log를 빠져나가기 위해서는 q버튼을 누르면 된다.