깃을 한 번쯤 들어봤다면 commit에 관해 많이 들어봤을 거라 생각한다.
commit이란 무엇인가? 그건 차근차근 적어나갈 생각이다.
미리 얘기하자면, 커밋(commit)을 하면 새로운 버전이 생성되면서
스테이지에 대기하던 파일이 저장소에 저장된다.
우선 깃을 사용하기 위해 저장소를 만들자.
저장소를 만들고 초기화하면 그때부터 해당 디렉터리에 있는 파일들을
버전 관리할 수 있다.
홈 디렉터리에 우선 hello-git이라는 디렉터리를 만들고 cd 명령을 사용해
hello-git 디렉터리로 이동하자.
hello-git 디렉터리 내용을 살피기 위해 'ls -la' 명령을 입력해보자.
아직 아무것도 만들지 않았기 때문에 파일은 존재하지 않는다.
이제 깃을 사용할 수 있도록 초기화를 해줘야 하는데, 'git init' 명령을 입력하면 된다.
이제 다시한번 'ls -la'를 입력하면. git이라는 디렉터리가 생겨 있고,
이 디렉터리가 깃을 사용하면서 버전이 저장될 저장소이다.
여기서 궁금증, 버전이란 무엇인가?
프로그램을 개발하는것에 있어서 수정한 내용이 쌓이면 새롭게 번호를 붙여서
이전 상태와 비교한다. 이처럼 번호나 기호 등을 통해 구별된 것을 버전이라고 부른다.
이렇게 버전관리를 하기 쉽게 하고, 협업할 때도 유용하게 사용하기 위해 깃을 이용하는 것이다.
이제 실질적으로 버전관리를 하는 방법을 배워보고자 한다.
우선 'git status' 를 입력해보자.
그럼 깃의 상태를 나타내는 메세지가 보인다.
On branch master
No commits yet
nothing to commit ...
아직 아무런 동작도 하지 않았기 때문에 나오는 것들이다.
앞으로 차근차근 배워보자.
git bash 창에 다음과 같이 입력한다.
'vim hello.txt'
(이전에 vim은 기본 편집기라고 정리해두었다.)
그다음 간단하게 '1'만 입력한 후 저장 후 종료해보자.
(l 또는 a 입력 -> 1 입력 -> esc 입력 -> :wq 입력 -> 엔터)
그다음 'ls -la'를 입력해보면 hello.txt 파일이 디렉터리 안에 만들어져 있다.
이제 다시 한번 git status를 입력해보자. 그럼 다른 메시지가 나온다.
nothing to commit -> untracked files:...
이렇게 바뀐 문장이 보일 것이다.
여기서 untracked files란, 아직 한 번도 버전 관리하지 않은 파일을 의미한다.
즉, hello.txt는 작업은 하였으나 버전을 따로 관리하지 않았음을 의미한다.
이제 이 파일을 커밋하기 위해서는 스테이지에 올려야 한다.
스테이지에 올리는 명령어는 'git add' 명령어이다.
git add hello.txt
이렇게 한 후 다시 한번 상태를 확인해보자.
여기서 git add를 하였을 때 나처럼 warning이 나타날 수 있다.
무시해도 상관없으니 무시하자.
(윈도의 줄 바꿈 문자와 리눅스의 줄바꿈 문자가 다르다는 것인데
굳이 이해하지 않아도 되며, 우리가 어떤 조치를 행하지 않아도 된다.)
밑부분을 보면 Change to be committed:...
로 바뀐 것을 볼 수 있다.
수정한 파일 hello.txt가 스테이지에 추가되었다는 뜻으로 보면 된다.
이제 버전을 만들 준비가 완료되었다.
스테이지에 올린 파일을 커밋해보자.
깃에서는 버전을 만드는 것을 '커밋(commit)한다'라고 말한다.
커밋을 할 때에는 어디를 변경했는지 메시지를 함께 기록해둔다.
방법은 다음과 같다.
ex) 만약 'change1'이라는 메시지를 기록한다면.
git commit -m "change1"
이렇게 명령어를 사용하면 된다.
커밋 후의 결과를 보면 파일 1개가 변경되었고,
파일에 1개의 insertion이 있었다고 나온다.
스테이지에 있던 hello.txt 파일이 저장소에 추가되었다.
(반드시 스테이지에 올린 뒤에 commit을 진행해야 오류가 나지 않는다.)
이제 현재 깃 상태를 확인해보자.
버전으로 만들 파일도 없고, 깨끗하다고 나온다.
방금 commit을 진행했기 때문에 이제 더 이상 파일이 없으므로, 당연한 결과다.
저장소에 저장된 버전을 확인할 때는 'git log' 명령을 이용한다.
커밋을 만든 사람, 만든 시간, 커밋 메시지가 함께 나타난다.
여러 정보가 함께 저장되고 필요할 때 확인할 수 있다.
(이게 깃을 버전 관리할 때 사용하는 이유 중 하나일 것이다.)
만일 스테이징과 커밋을 한 번에 처리하려면
다음과 같은 명령어를 사용하자.
git commit -am
ex) 빔에서 hello.txt를 열고 원하는 대로 편집 후 저장해보자.
이어서 다음과 같이 명령어를 입력한다.
git commit -am "원하는 메시지"
그럼 다음과 같이 스테이지에 올리는 add 명령어를 한 뒤에 할 필요 없이
바로 저장소에 commit 된다.
이제 git log를 확인해보자.
좀 전에 했던 commit과 이번에 -am으로 했던 commit이 나타나는 것을 볼 수 있다.
'Git&Github' 카테고리의 다른 글
브랜치(branch)(ⅱ) (0) | 2020.03.12 |
---|---|
브랜치(Branch) (0) | 2020.03.12 |
커밋(commit)상태와 복구 (0) | 2020.03.11 |
리눅스 명령(자주 사용하는 기초명령어)...(ⅱ) (0) | 2020.03.06 |
-깃 기초단계 - (bash 기초)...(ⅰ) (0) | 2020.03.06 |