Git을 사용하여 버전을 생성하고 관리하기 전까지는 아래와 같이 문서를 관리하였을 것입니다.
수정된 내용이 있다면 수정본을 만들고 저장하고, 또 저장하는 과정을 거쳐 계속해서 많은 문서들이 생성되었을 것입니다.
GIt을 사용하면 수정 내용을 기록하고 원래의 파일 이름 그대로 유지할 수 있습니다.
또한 파일에서 무엇이 변경되었는지 확인할 수 있습니다.
각 버전마다 작업 내용을 확인하고 그 버전으로 되돌아갈 수 있습니다.
버젼을 생성하기 전에 먼저 깃에서 버전을 만드는 과정부터 알아보겠습니다
Git 버전 생성 과정
1. 작업트리
그림의 가장 왼쪽에 있는 작업트리는 우리 눈에 보이는 디렉토리(폴더)입니다.
파일을 수정, 저장하는 작업을 하는 .git 디렉토리가 생성이 되어있는 GitTest 디렉토리라 할 수 있습니다.
여기서 test.txt파일을 수정하고 저장하면 test.txt 파일은 작업 트리에 있게 됩니다.
2. 스테이지(Staging area)
스테이지는 스테이징 영역(Staging area)라고 부르며 버전으로 만들 파일이 대기하는 곳 입니다.
작업트리와 달리 우리 눈에 보이지 않습니다. .git 안에 숨어있습니다.
git add 명령어를 통하여 파일을 스테이징 영역으로 넘겨주게 됩니다.
그림과 같이 3개의 파일을 수정하였는데 2개의 파일만 버전으로 만들고 싶은 경우에 2개의 파일만 스테이지에 넘겨주면 됩니다.
버전을 만드려면 add 명령어를 사용하여 test.txt파일과 Hello.txt 파일을 스테이지 영역으로 넘기게 됩니다.
3. 저장소(Repository)
저장소(Repository)는 스테이징 영역에서 대기하고 있던 파일이 버전으로 만들어 저장하는 곳입니다.
작업트리와 달리 우리 눈에 보이지 않습니다. .git 안에 숨어있습니다.
git commit 명령어를 통해 스테이징 영역에서 대기하고 있던 파일을 저장소로 넘겨주게 됩니다.
스테이징 영역에서 대기하고 있던 Test.txt , Hello.txt 파일을 commit 명령어를 사용하여 버전으로 만들게 됩니다.
Git 버전 생성 하기
실제로 버전을 생성해 보도록 하겠습니다.
현재 저의 디렉토리 상태입니다. GitTest 디렉토리에서 작업을 할 것입니다.
GitTest 디렉토리 안에 있는 test.txt 파일의 내용은 ver 1입니다.
git status 명령어를 통해 git의 상태를 확인하겠습니다.
1. On bracnch master : 현재 마스터 브랜치에 있습니다.
※브랜치의 개념은 다음에 이야기 하도록하겠습니다
2. No commits yet : 아직 커밋한 파일이 없습니다.
3. Untracked files : 깃에서 추적할 수 없다는 내용입니다.
아직 한번도 버전 관리를 하지 않은 파일이기 때문입니다.
이해를 돕기 위하여 그림을 준비했습니다. 현재 상태를 나타내고 있습니다.
test.txt 파일은 스테이징 영역에 올라가 있지 않고 작업트리에서 수정과 저장만 한 상태입니다.
스테이징 영역에 올려 보도록 하겠습니다.
git add test.txt(파일이름.확장자)를 입력하여 스테이징 영역에 넘겼습니다.
이때 warning 메세지가 등장하는데 warning 메세지의 내용은 이러합니다.
윈도우의 줄바꿈 문자와 리눅스의 줄바꿈 문자가 다르기 때문에 깃에서 자동으로 텍스트 문서의 CRLF 문자를 LF 문자로 변환해서 commit을 하겠다라는 의미입니다.
CRLF 문자는 CR문자와 LF문자가 합쳐진 문자입니다.
윈도우에서 문자를 저장했을 경우에 줄이 바뀌는 자리에 CR문자와 LF문자가 삽입됩니다.
리눅스와 맥에서는 문서를 저장할때 줄이 바뀌는 자리에 LF문자가 삽입됩니다.
쉽게 생각하여 윈도우의 문자를 리눅스, 맥 문자로 변환하겠다는 의미입니다.
사용자가 조치를 취할 것은 없습니다.
Untracked files 메세지가 Changes to be committed 로 바뀌어 있는 것을 볼 수 있습니다.
또한 test.txt 문구 앞에 new file : 이 붙은 것을 볼 수 있습니다.
이 의미는 앞으로 새 파일 test.txt 를 커밋할 것이다. 라는 이야기 입니다.
정상적으로 스테이징 영역에 추가가 되었습니다.
스테이징 영역에 추가한 파일을 저장소로 넘기겠습니다.
git commit -m " " 명령어를 사용하여 버전을 생성하였습니다.
git commit 명령어는 파일을 커밋하는 명령어 입니다.
-m 옵션은 커밋과 함께 저장할 메세지를 적을 수 있습니다. 이것을 커밋메세지라고 부릅니다.
1 file changed, i insertion(+) 은 파일 1개가 변경되었고, 파일에 1개의 내용이 추가되었다는 이야기 입니다.
스테이징 영역에 있던 test.txt 파일이 저장소에 추가가 되었습니다.
git status 명령어를 입력하여 현재의 깃 상태를 확인하겠습니다.
nothing to commit, working tree clean
버전으로 만들 파일이없고, 작업트리가 깨끗하다는 내용입니다.
버전이 제대로 만들어졌는지 확인하고, 저장소에 저정된 버전을 확인해 보겠습니다.
git log 명령어를 사용하겠습니다.
Author(커밋을 만든 사람), Date(커밋을 만든 시간), ver 1입니다.(커밋 메세지)까지 잘 나오는 것을 볼 수 있습니다.
현재의 과정을 정리한 그림입니다.
과정을 진행을 하다보니 add과정과 commit 과정이 한꺼번에 진행이 되었으면 좋겠다는 생각이 들었습니다.
깃에서 두개의 과정을 한꺼번에 진행할 수 있습니다.
먼저 빔(vim)을 이용하여 test.txt 파일을 열고 ver1 밑에 ver2를 적고 저장하였습니다.
git commit -am " " 명령어를 입력하여 add와 commit을 한꺼번에 진행하였습니다.
이때 주의해야할 점은
※ -am 옵션을 사용할 경우 단 한번이라도 commit한 적이 있는 파일을 다시 commit할때 사용할 수 있습니다.
git log 명령어를 사용하여 버전을 확인하겠습니다.
커밋 메세지가 잘 나오는것을 볼 수 있습니다.
감사합니다! :)
'Git' 카테고리의 다른 글
#7 Git(깃) tracked, untracked file (5) | 2021.01.08 |
---|---|
#6 Git (깃) git log , git diff (4) | 2021.01.07 |
#4 Git 저장소 생성 (2) | 2021.01.05 |
#3 Git 사용 전에 리눅스 명령어 연습 (2) | 2021.01.04 |
#2 Git 설치하기 (3) | 2020.12.30 |