본문 바로가기

Note/생활코딩 GIT

생활코딩_GIT_02. CLI 버전관리 - #3 버전만들기

#하려는것

 

ex ) 버전을 만드려고 하는데, 내가 수정한 파일은 총 10개다. 그런데 그중 2개만 찍어서 그것을 하나의 버전으로 만들고싶다.

- 그 10개의 파일이 올라와 있는곳. = Working tree

- 변경할 2개의 파일을 올려두는 곳 = Staging Area

- 그렇게 변경사항들이 저장되는 곳 = Repository

 

1) Working tree

- 아직 버전으로 만들어지기 전단계

 

2) Staging Area

- 버전을 만드려는 파일들을 올려두는곳

 

3) Repository

- 파일을 변경했을 때, 그 변경사항들이 저장되는 곳.

- 지난 포스팅에서 만들었던 repositiory가 바로 이것. (그때 생성된 .git 폴더를 repository로 봐도된다.)

 

 

# 커밋하기까지의 과정들 .. ( 파일만들기 / 파일 수정하기 / git 상태보기 / stage에 파일올리기 / 커밋하기 / 수정된 내역 확인하기 )

1) nano hello1.txt

- hello1.txt 라는 파일을 만든다.

- 엔터 시, 해당 파일로 접속됨

- 파일을 수정한뒤, 나가려면 ctrl + x  -> 저장하려면 y -> 나가려면 enter .

 

2) cat hello1.txt

- hello1.txt이라는 파일의 내용 출력

 

3) git status

- git 의 상태를 알려줌

- not commits yet : 아직 커밋되지 않았다

- untracted files : 아직 관리를 지시하지 않아, 관리되지 않는 파일 (git은 없는셈 침 / 협업이나 백업하고싶지 않은 파일은 그냥 여기에 내비두면 된다.)

- chages to be committed : 버전이 될 파일들의 목록

- nothing to commit, working tree clean  : 버전이 되지 않은 수정사항이 없다. 버전으로 만들 것이 없다.

 

4) git add hello1.txt

- hello1.txt 를 Staging Area에 올림.

 

5) git commit -m "my first commit"

- commit = 제출하다

- create version

- "Message 1"이란는 메모와 함께 변경사항을 제출한다.

 

6) git log

- 버전이 잘 만들어졌는지 확인

- 나가려면 q  입력

 

 

#여러개 파일을 수정하기

nano hello1.txt

nano hello2.txt

git status

git add hello1.txt

git add hello2.txt

git status

git commit -m "message 3"

git status

git log

git log --stat

- 각 커밋에 어떤 파일들이 연루되었는지 알려준다.

 

 

# 버전간의 차이점 비교

1) git diff

- difference의 약자 

- 새 버전에서 변경된 사항을 알려준다.  

- 삭제된 사항은 빨간색으로, 추가된 것은 초록색으로 표시해준다.

 

2) git reset --hard

- 지금까지 변경사항을 지우고, 이전의 상태로 돌아간다.

 

3) git log -p

- 모든 커밋의 변경사항을 알려준다.