간단하게 git이랑 명령어 소개

처음 깃허브를 접해봤을 때가 게임 개발 동아리였는데.. 그 땐 git이 뭔지도 정확히 몰랐고 github desktop이랑 git bash랑 너무 달라서 다른 사람이 말하는 것이 이게 맞나 많이 당황했던 기억이 있다...

 

일단 우리가 배워볼 깃은 리눅스 운영체제의 오픈소스에서 수천만줄 짜리 코드를 관리하기 위해 만들어졌다.
그래서 이 git 이란 것이 어떻게 저 코드들을 관리하고 어떤 역할을 하는지 정의를 하고 넘어가자.

git 은 문서를 수정 및 편집하는 기록을 쉽게 관리하도록 도와주는 프로그램이다.
그냥 문서 버전 관리를 도와준다고 할 수 있다.

이와같은 깃에는 여러가지 관리 방법이 있는데, 관리 방법을 시각적으로 사용자 인터페이스(GUI)에 맞춘 github desktop 이나, git bash 등이 있다. 

 

앞서 소개했던 do it 시리즈의 책은 git bash를 사용한 터미널에서 명령어를 사용하는 방식으로 문서의 버전 관리 방법을 소개한다. 개인적으로 나는 깃을 처음 다룰 때 깃허브 데스크탑으로 다뤄봤기 때문에 명령어를 다루는 내용들이 새롭게 다가왔다.

 

 


 

 

깃을 다루다 보면 directory라는 말이 자주 나온다.
윈도우 탐색기의 폴더를 리눅스에서는 디렉토리라고 부르기 때문에 그냥 개념을 소개할 때 디렉토리라고 통일한다.

 

우선, git bash를 다운로드하고 창을 켰으면 현재 우리가 어떤 디렉토리에 있는지 알아보자.

$표시 옆에 pwd라고 치면 현재 우리가 위치한 디렉토리를 확인할 수 있다.
pwd는 print working directory라는 뜻이다.

 

 

이와 마찬가지로, 현재 디렉토리에 어떤 파일이 있는지 확인하고 싶다면 ls 명령어를 입력한다.

리눅스 명령에 옵션을 추가하려면 하이픈 - 을 붙이고 원하는 옵션을 나타내는 글자를 같이 입력해서 옵션들을 사용할 수 있다. 옵션들을 연속으로 사용할 수도 있다. -al, -la 같이 순서는 상관 없다.

ls 옵션 설명
-a 숨김 파일과 디렉토리도 같이 표시
-l 파일의 상세 정보도 같이 표시
-r 파일의 정렬 순서를 거꾸로 표시
-t 파일 작성 시간 순으로 표시

 

 

터미널 창에서 디렉터리 사이를 이동할 때는 cd 명령어를 사용한다.
cd는 change directory 라는 의미이다.

디렉토리를 c로 이동한 후, pwd 명령어를 이용해서 현재 디렉토리가 c임을 확인했다.

 

 

아직까진 이미 만들어진 디렉토리(폴더)에서만 cd로 이동할 수 있었다.
이제 터미널 창에서 새로운 디렉토리를 만들고 삭제해보자.

cd명령어를 이용해서 Documents 파일로 이동하자.
이 디렉토리 안에 mkdir 명령어로 test파일을 만들었다.

실제로 윈도우 파일 탐색기를 통해 Documents 폴더 안에 test 폴더가 생긴 것을 확인했다.

 

 

만약 이 test 폴더를 삭제하고 싶다면 rm 명령어를 사용하자.

rm 명령어로 test파일 삭제했다. 여기서 -r 옵션은 디렉토리 안에 있는 하위 디렉토리까지 삭제한다.
(rm은 remove의 줄임말이다.)

 

 

이제 폴더를 생성 및 삭제할 수 있으니, 다시 폴더를 만들어서 그 안에 텍스트 문서를 만들어보자.

다시 test파일을 만들고 디렉토리를 test로 옮긴 다음, 터미널에서 사용할 수 있는 리눅스의 기본 편집기인 vim 편집기를 사용할 것이다.

vim 편집기를 사용하겠다는 의미인 vim 명령어를 이용해서 엔터를 치면

이렇게 텍스트를 작성할 수 있는 공간으로 이동하게 된다.
그런데 처음에는 아무것도 안써진다... 왜 안써지는지 당황하지 말고,, 

 

일단 vim에는 '입력모드'와 문서를 저장하는 'ex모드'가 있다.

삽입을 의미하는 I (insert)나 A (add)를 누르면 입력모드로 바뀌고 그제서야 문자들을 입력할 수 있다.

이렇게 맨 밑에 모드가 바뀐 것을 확인할 수 있다.

다 썼으면 esc 키를 이용해서 ex모드로 바꿔주고

맨 밑에 :wq를 써주는 것으로 문서를 저장한 후 편집기를 닫고 원래의 창으로 나올 수 있다.

명령 설명
:w 또는 :write 편집 중이던 문서를 저장
:q 또는 :quit 편집기를 종료
:wq (파일) 편집 중이던 문서를 저장하고 종료.
파일 이름도 같이 입력하면 그 이름으로 저장 
:q! 문서를 저장하지 않고 편집기를 종료
확장자가 .swp인 임시 파일이 생긴다.

 

 

이렇게 문서를 수정하고 저장해봤다. 우리가 제대로 문서를 작성했는지 확인하기 위한 명령어가 있다.

문서 편집 명령어는 아니지만 cat 명령어를 입력하면 터미널 화면에 그 텍스트 파일의 내용을 보여준다.
여기서 cat은 concatenate의 줄임말이다.

명령 설명
$cat 파일 파일의 내용을 화면에 표시함
$cat 파일1,파일2 ... > 새파일 파일들을 차례로 연결해서 새로운 파일을 만듦
$cat 파일1>>파일2 파일1의 내용을 파일2의 끝에 연결함

 

 

만약에 vim 편집기를 사용하기 보다 깃에서 내가 따로 쓰는 편집기로 기본 편집기를 변경하려면
$git config --global core.editor "편집기 실행 파일 경로"를 입력하면 된다.

 

참고로 git bash에서는 ctrl c v가 안먹힐텐데,
여기서 복사는 Ctrl + Insert 붙여넣기는 Shift + Insert 를 사용한다.

아니면 드래그 후 마우스 우클릭으로 복사, 붙여넣기를 할 수도 있다.