TIL : Git

so2·2021년 1월 4일
0
post-thumbnail
post-custom-banner

Git의 핵심 기능

  1. 버전 관리
  2. 백업
  3. 협업

Git 저장소 만들기

cmd창을 열고 저장소를 만들고 싶은 폴더로 이동한 후
git init 명령어 입력시 .git 폴더가 생성된다.

버전 만들기

버전이란 수정하고 저장할 때마다 생기는 것이다.
깃에서 버전을 만들기 위해 세가지 개념의 이해가 필요하다.

  • 작업 트리 : 작업을 하는 디렉터리
  • 스테이지/스테이징 영역 : 버전으로 만들 파일이 대기하는 곳
  • 저장소/리포지토리 : 스테이지에서 대기하고 있던 파일들을 버전으로 만들어 저장하는 곳

동작 과정
1. 작업 트리에 있는 파일을 수정/저장한다.
2. 버전으로 만들고 싶을 때 해당 파일을 스테이지에 넣는다.
3. 깃에게 commit 명령을 내린다. 이때 새로운 버전이 생성되면서 스테이지에 대기하던 파일이 모두 저장소에 저장된다.

✍🏻 예제를 통해 설명

hello-git 폴더에 깃 상태를 확인하기 위해 git status를 입력하면 다음과 같이 나타난다.

On branch master = 현재 마스터 브랜치이며
No commits yet = 아직 커밋한 파일이 없고 
nothing to commit = 현재 커밋할 파일이 없다

해당 폴더에 임의의 text.txt를 만든다. (내용은 상관없다.)
txt 파일을 만든 후 다시 git status를 해보자.

마스터 브랜치에 test.txt 라는 untracked files가 있다라는 의미이다.
untracked files란 깃에서 한번도 버전 관리를 하지 않은 파일이다. 

수정한 파일을 스테이지에 추가하는 것을 스테이징이라고 한다.
git add 명령을 통해 이루어지며 그 다음 git status를 통해 깃 상태를 확인하자.

git add 파일이름 : 특정 파일 스테이지에 올리기
git add . : 현재 저장소에 수정된 파일 모두 스테이지에 올리기

Changes to be committed에 있는 파일들은 
앞으로 커밋할 수 있음을 나타낸다

스테이징이 끝나면 버전을 만들 수 있는데 이를 커밋(commit)이라고 한다. 커밋할 땐 해당 버전에 어떤 변경 사항이 있었는지 확인하기 위해 메시지를 함께 기록해야 한다.

"" 안에 커밋과 함께 저장할 메시지를 적는다. 
git status로 깃 상태를 확인해보면 
버전으로 만들 파일이 없고 (noting to commit)
작업 트리도 수정사항 없이 깨끗하다 (working tree clean)
임을 알 수 있다.

git commit -am "커밋메시지" : 한 번이라도 commit 한 적이 있는 파일 다시 commit할 때

저장소에 저장된 버전을 확인할 땐 git log 명령을 사용한다.

git log --stat : 커밋에 관련된 파일까지 함께 보고 싶을 때


커밋 내용 확인하기

commit e20d1478a9796466d5e61f420a216b510f70a10f 
	 커밋 해시, 깃 해시라고 불리며 커밋을 구별하는 id
(HEAD -> master)
	 해당 버전이 가장 최신이라는 표시

변경 사항을 확인하기 위해서 git diff 명령을 사용한다.
작업 트리에 있는 파일과 스테이지에 있는 파일을 비교하거나, 스테이지에 있는 파일과 저장소에 있는 최신 커밋을 비교한다.

✍🏻 예제를 통해 설명

기존 파일에 2를 지우고 two를 추가한 후 저장했다.
빨간색 글자 '-2'는 '2'가 삭제되었다는 뜻이고 
파란색 글자 'two'는 'two'가 추가되었다는 뜻이다. 

버전 만드는 단계마다 파일 상태 알아보기

  • tracked 파일 : 깃이 한 번이라도 커밋을 한 파일
    • modified : 파일이 수정되었지만 스테이지에 올라가지 않은 상태
    • staged : 스테이지에 파일을 올리고 커밋 직전 상태
    • unmodified : 커밋이 끝난 후 상태
  • untracked 파일 : 깃이 관리하지 않은 파일

Changes not staged for commit 는 변경된 파일이 
아직 스테이지에 올라가지 않았다는 뜻이다.
text.txt는 수정되었다는 것을 나타내고, 
test3.txt는 Untracked files로써 
한 번도 깃에서 버전 관리를 하지 않은 파일이다. 

📢 게시물은 DO it! 깃&깃허브 입문을 참고했습니다.

post-custom-banner

0개의 댓글