Computer Science/Git

2. Git 버전 만들기(commit)

ajdanddl 2019. 12. 25. 23:35
반응형

Git 버전 만들기를 진행해봅시다.

 

여기서 '버전'은 어떠한 완성된 프로그램을 가리킵니다. 완성되지 않은 프로그램은 새 버전이라고 할 수 없는 것입니다. 

 

깃을 처음 사용하는 거라면 우리가 앞으로 관리할 버전이 우리 것임을 알려주는 정보를 작성해줘야 합니다.

이렇게

git config --global user.name 사용자명

git config --global user.email 사용자 이메일

입력해주게 되면 본인이 관리하는 버전은 모두 방금 작성한 사용자명과 이메일을 포함하게 됩니다.

 

이 과정은 처음 시작할 때 딱 한번만 진행하면 됩니다.

 

그 다음에 git commit을 입력하게 되면 

git status를 입력했을 때 나오는 내용이 보여집니다.

#으로 적혀 있는 부분은 무시되는 부분입니다.

 

우리는 이 파일이 왜 명령되었는지 그 이유를 적는 버전/커밋 메세지를 작성해줘야 합니다.

i를 눌러 INSERT 모드로 변경해줍히다.

 

그 다음에 1을 작성하고(버전 1이라는 뜻으로) Esc를 눌러 Insert모드를 해제해줍니다.

그리고 :wq(write quit)(파일에 정보를 입력하고 종료해준다는 뜻)을 입력하고 엔터를 쳐줍시다.

그러면 f1.txt가 새로운 버전이 되었다는 의미의 메세지가 뜨게 됩니다.

최초로 저희가 버전을 생성하게 된 것입니다.

 

다음으로 버전이 잘 만들어졌는지 확인해 봅시다. 

git log를 입력하게 되면

이렇게 앞서 입력한 1이 뜨게 되죠.

그리고 저희가 앞서 입력한 저희의 정보가 Author : 부분에 뜨게 됩니다.

그리고 Date : 에 언제 이 버전을 만들었는지에 대한 정보가 뜨게 됩니다.

 

다시 f1.txt의 새로운 버전을 만들어봅시다. 

vim f1.txt를 입력하여 source : 1 이라고 앞서 입력한 정보를 source : 2라고 변경해줍시다. 

앞에서 vim 사용했을 때와 똑같이 i를 눌려 insert모드로 변경하고 esc로 해제하고 :wq로 빠져나가시면 됩니다. 

그러고 나서 git status를 입력해보면

modified: f1.txt라고 뜨게 됩니다. 수정된 것입니다. 여기서 바로 커밋을 하면 안되고 

git add f1.txt라는 명령어를 다시 입력해줘야 합니다. 

우리가 이미 f1.txt라는 파일을 버전 관리하고 있기 때문입니다. 

파일을 최초로 버전관리할 때도, 그 파일을 다시 수정할 때도 git add를 해줘야 합니다. 

warning 메세지와 함께 작동이 됩니다. 

이 warning 메세지를 검색해보니 윈도우와 리눅스의 파일 저장 방식의 차이 때문이라는데

윈도우의 경우 줄 하나가 CRLF(Carriage Return Line Feed)라는 방식으로 저장되는 반면 리눅스(유닉스 OS)의 경우 LF(Line Feed) 방식으로 저장이 되기 때문이라고 합니다. 

그런데 저의 경우 윈도우 환경에서 이를 실행하고 있기 때문에 

 

LF 방식이 CRLF 방식으로 대체된다는 에러가 뜨게 된 것입니다.

(리눅스의 경우 CRLF방식이 LF 방식으로 대체된다는 에러가 뜨겠죠. 윈도우 개발자와 협업한다는 가정 하에)

 

이를 해결해주기 위해서는 git config --global core.autocrlf true 라는 명령어를 입력해주면 됩니다.

만약 해당 프로젝트에만 이를 적용하고 싶다면 git config core.autocrlf true라고 해주시면 됩니다. 

git config core.autocrlf true

이제 에러를 해결했으니 앞에서 하던 버전 관리를 이어서 하면 

git status 명령어를 입력해줘 현재 f1.txt의 버전 정보를 확인해봅시다. 

그리고 다시 git commit을 해줍시다.

그리고 커밋 메세지를 이번에는 2로 작성해줍시다.

 

앞서 처음 입력했었던 1 커밋메세지와 2 커밋 메세지가 둘 다 뜨게 됩니다.

 

-----------------------------------------------------------------------------------------------------------------------------------

<git log와 git status의 차이>

git status : 현재 git 상태 보기

git log : 현재까지 commit 된 목록들을 확인

 

git status를 입력했을 때 On branch master nothing to commit, working tree clean

이라고 뜨는 경우가 있는데 이는 해당 파일을 한번도 수정한 적이 없을 때 나타나는 문구라고 한다.

-----------------------------------------------------------------------------------------------------------------------------------

(*위 내용은 생활코딩 님의 '지옥에서 온 Git' 강의를 참고하였습니다.)

반응형

'Computer Science > Git' 카테고리의 다른 글

[Git Bash] Git Bash로 commit하고 push하기  (0) 2020.05.25
5. Git reset, revert (간단히 알아봅시다)  (0) 2019.12.31
4. Git 변경사항 확인하기  (0) 2019.12.29
3. Git stage area  (0) 2019.12.26
1. Git init , Git add  (0) 2019.12.23