02-1 깃 저장소 만들기

저장소를 만들고 싶은 디렉터리로 이동해서 깃을 초기화 -> 해당 디렉터리에 있는 파일들을 버전관리 O

 

깃 초기화 하기 - git init

1. 깃 저장소를 만들 디렉터리 생성

홈 디렉터리에 hello-git이라는 디렉터리를 만들고 cd명령을 사용해 해당 디렉터리로 이동

$ mkdir hello-git

$ cd hello-git

2. 깃을 사용할 수 있도록 디렉터리 초기화

$ git init

"Initialized empty Git repository ..."  -> 해당 디렉터리에서 깃 사용 가능

디렉터리 안의 내용을 확인해 보면, '.git'라는 디렉터리가 생성되어있음  ($ ls -la 이용)

'.git' : 깃을 사용하면서 버전이 저장될 저장소(repository)

      cf) .git 디렉터리는 감춰져 있음 (hello-git 디렉터리를 열었을 때 나타나지 않음)

          - 윈도우에서는 [보기]탭에서 '숨긴 항목'을 체크하면 확인 가능

 

02-2 버전만들기

버전 - 프로그램 개발에서 수정내용이 쌓이면 새로 번호를 붙여서 이전 상태와 구별하는 것

 

깃에서 버전이란

- 문서를 수정하고 저장할 때 마다 생기는 것

버전관리 시스템(ex 깃) : 만든 시간과 수정내용까지 기록할 수 있음, 변경 시점마다 저장가능

 

스테이징와 커밋 이해하기

작업트리(Working tree = Working directory)

- 파일 수정, 저장 등의 작업을 하는 디렉터리 (우리 눈에 보이는 디렉터리)

 

스테이지 (Stage = staging area)

- 버전으로 만들 파일이 대기하는 곳

- 작업트리에서 수정한 파일 중 버전으로 만들 파일만 스테이지로 넘겨주기

 

저장소 (Repository)

- 스테이지에서 대기하고 있던 파일들을 버전으로 만들어 저장하는 곳

 

작업 트리에서 빔으로 문서 수정하기

1. hello-git 디렉터리까지 이동후 깃 상태 확인

 

$ git status(깃 상태 확인)을 하면 위 그림처럼 3메시지가 나타난다. 

 (1) On branch master : 현재 master branch에 있음 

 (2) No commits yet : 아직 커밋한 파일이 없음

 (3) nothing to commit : 현재 커밋할 파일이 없음

 

2. hello-git 디렉터리에 새로운 파일 만들기

$ vim hello.txt

3. vim 화면이 나타나면 1강에서 배운대로 입력 후 종료

4. 깃 상태를 확인해보면 hello.txt라는 untracked files가 있다는 메시지가 나타난다. 

 - untracked files: 한번도 버전관리하지 않은 파일

 

수정한 파일을 스테이징하기 - git add

1. 스테이징(staging) : 스테이지에 작업트리에서 만들거나 수정한 파일 추가

$ git add hello. txt

2. 깃상태를 확인하면 untracked files: 라는 문구가 changes to be committed 로 바뀜 그리고 new file:이라는 수식어가 추가로 나타나는데 이는 "새 파일 hello.txt를 앞으로 커밋할 것이다"라는 뜻

스테이지에 올라온 파일 커밋하기 - git commit

1. 커밋(commit) : 버전을 만듦

커밋과 함께 저장할 메시지를 적을 수 있는데 메시지에는 그 버전에 어떤 변경 사항이 있었는지 확인하는 용도

$ git commit -m "message1"

2. 버전이 제대로 만들어졋는지 확인

$ git log

방금 커밋한 버전에 대한 설명(커밋을 만든 사람, 만든 시간, 커밋메시지) 이 나타난다. 

 

스테이징과 커밋 한꺼번에 처리하기 - git commit -am

1. vim에서 아까 작성한 hello.txt파일을 열어 파일의 안의 내용을 수정

2. 스테이징과 커밋 한꺼번에 처리

$ git commit -am "message2"

단, 한번 커밋한 파일이어야 한다. 

 

02-3 커밋 내용 확인하기

커밋 기록 자세히 살펴보기 - git log

지금까지 만든 버전이 화면에 나타나고, 각 버전마다 설명도 함께 나타남

변경 사항 확인하기 -git diff

- 최신버전의 파일과 수정한 파일이 어떻게 다른지 확인

 

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

tracked file 과 untracked file

 cf) 커밋에 관련된 파일 까지 살펴보려면 $git log --stat 입력

 

unmodified, modified, staged 상태

  cf) 방금 커밋한 메시지 수정하기 : $git commit --amend 를 입력하기 -> vim이 켜지면 수정후 저장하면서 종료

 

02-5 작업 되돌리기

작업트리에서 수정한 파일 되돌리기 - git checkout

-파일을 수정한 뒤 소스가 정상적으로 동작하지 않는 등의 이유로 수정한 내용을 취소하고 가장 최신 버전 상태로 되돌리기

$ git checkout -- hello.txt

스테이징 되돌리기 - git reset HEAD 파일이름

-수정된 파일을 스테이징 햇을때, 스테이징 취소

$ git reset HEAD hello.txt

최신 커밋 되돌리기 - git reset HEAD^

-수정된 파일을 스테이징하고 커밋까지 햇을 때, 가장 마지막에 한 커밋 취소

$ git reset HEAD^

- 커밋에 취소되고 스테이지에서도 내려감

 

특정 커밋으로 되돌리기 -git reset 커밋해시

- 특정 버전으로 되돌린 다음 그 이후 버전을 삭제

- git reset A 일때, A커밋을 삭제하는 것이 아니라 A 커밋 이후에 만들었던 커밋을 삭제하고 A 커밋으로 이동 

- git log 를 이용해 커밋해시 복사

 $ git reset --hard 복사한커밋해시

 

커밋 삭제하지 않고 되돌리기 - git revert

-나중에 사용할 것을 대비해 커밋을 되돌리더라도 취소한 커밋을 남겨두어야 할때

 $ git revert 복사한커밋해시

 

'Computer Science > git&github' 카테고리의 다른 글

개발자가 오픈소스 읽는 방법  (0) 2022.02.16
기본 Git&Github 협업과정  (0) 2022.02.16
[git & github] 깃허브  (0) 2020.05.18
[git & github] 브랜치  (0) 2020.05.17
[git & github] 깃 시작하기  (0) 2020.05.13

+ Recent posts