리누스 토발즈(Linus Torvalds)가 2005년 발표한 시스템으로, 오픈 소스 방식으로 진행하던 작업 환경을 개선하기 위하여 만들어졌다. ‘지옥에서 온 관리자’라고 소개된 깃은, 리눅스(Linux) 개발자들이 소스코드를 효율적으로 관리할 수 있도록 했고, 오늘날 많은 소프트웨어들이 깃으로 관리되고 있다.
크게 세 가지 용도를 갖추고 있다.
버전 관리 (version control)
가장 중요한 기능이다. 수정 및 변경 사항이 발생할 때마다 새 문서를 복사하고, 저장하는 수고를 덜어준다. 수정한 기록(수정한 사람, 일시, 내용 등)이 모두 기록되며 필요에 따라서는 복원할 수도 있다.
초안, 수정1, 수정2, 최종, 최최종, 최최최종, 진짜 최종…. 등의 수고를 덜 수 있다.
백업 (backup)
데스크탑이나 노트북, USB나 외장하드 등 물리적 저장소는 파일 유실이나 손상 등의 위험을 가지고 있다. 다른 저장소에 백업하는 방법도 있는 반면 온라인 서비스(ex. Google Drive, Dropbox) 역시 애용되고 있는 방법 중 하나이다. GitHub 등 원격 저장소가 쓰인다.
협업 (collaboration)
원격 저장소, 즉 온라인 서비스를 이용하면 여러 사람이 동시에 접근하고 수정할 수 있으므로 협업에 깃이 쓰이기도 한다. 누가 어디를 어떻게 수정했는지 기록도 남기에 오류 시 복원도 가능하다.
깃은 특정 프로그램 이름이라기보다는 시스템에 가깝다. 스마트폰과 아이폰의 관계가 있다면 ‘스마트폰’이라는 제품군에 해당하는 것이다. 아이폰, 즉 제품에 해당하는 깃 프로그램, 혹은 깃 클라이언트 프로그램은 깃을 편리하게 사용할 수 있도록 해준다.
깃허브 데스크톱(GitHub Desktop)은 GitHub(깃허브)에서 제공하는 프로그램으로, 깃의 복잡한 CLI(Command Line Interface) 작동 대신 GUI(Graphic User Interface, 그래픽 사용자 인터페이스)로 구현하여 쉽게 깃을 사용할 수 있도록 한다. 기본적 기능 위주로 구성되었으며, 고급 기능은 부족한 편이다.
토터스깃(TortoiseGit)은 윈도우(Windows) 운영체제 전용이다. 윈도우 탐색기의 빠른 메뉴(우클릭 시 나타나는 것)에 추가된다.
소스트리(SourceTree)는 고급 기능까지 사용할 수 있도록 한다. 물론 기능이 많은 만큼 난이도가 높은 편이다.
커맨드 라인 인터페이스(Command Line Interface, CLI)는 흔히 아는 ‘까만 창’에 직접 타이핑으로 입력하는 방식이다. (‘까만 창’=터미널 창) GUI 환경보다 사용하기 어렵다. 리눅스 명령어 및 깃 명령어를 알아야 하고 실수가 빈번히 발생한다. 그러나 위 프로그램들보다 빠르게 깃을 다룰 수 있으며, 반복 작업을 자동화시킬 수 있다는 점 등 이점도 분명히 존재한다. 개발자들 대부분은 CLI로 깃을 사용하는 편이다.
로컬 저장소(local repository, 이하 '로컬')은 본인의 컴퓨터에 파일을 저장할 수 있는 공간을 말한다. 즉 데스크탑이나 노트북의 저장소, USB나 외장하드 등을 말한다.
반면 원격 저장소(remote repository)는 로컬이 아닌 다른 컴퓨터나 서버의 만든 저장소이다. 원격 저장소를 활용하면 다른 사람들도 접근하기 쉽고 서버와 협업의 기능을 백분 활용할 수 있다. 로컬과 연결하여 파일의 버전을 관리한다.
GitHub(깃허브)는 원격 저장소 중 하나로, 인터넷에서 제공되는, 깃 사용을 위한 원격 저장소 제공 서비스이다. 우리가 사용할 만한 대부분의 기능이 무료로 제공된다.
GitHub 홈페이지
포스팅은 윈도우, 혹은 리눅스 우분투 환경에서 진행하였다. 명령어는 동일하게 작동한다.
https://git-scm.com/ 사이트에서 운영체제에 따라 프로그램을 내려받아 설치한다.
깃을 설치한 뒤 제대로 설치되었는지 확인한다.
Git Bash
를 실행하면 터미널 창이 실행되며 명령어를 입력할 수 있게 된다.
$ git
해당 명령어를 입력하면 git 명령에서 사용할 수 있는 옵션들이 나타난다. 이들이 표시된다면 제대로 설치가 된 것이다.
Git Bash는 리눅스 명령어를 윈도우에서도 사용할 수 있도록 해준다. 윈도우에서 실습한다면 이 프로그램을 사용한다.
프로그램 설치 뒤에는 사용자 정보를 설정해야 한다. 버전 관리를 위해 수정한 사용자의 정보가 함께 저장되기 때문이다.
$ git config --global user.name “lumos”
$ git config --global user.email “717lumos@gmail.com”
git config
: 깃에서 사용자 정보 설정.--global
옵션은 현재 컴퓨터에 있는 모든 저장소에 같은 사용자 정보를 설정하도록 함
우분투에서는 터미널을 열어 아래 명령어를 차례대로 입력하여 Git을 설치할 수 있다.
$ sudo apt-get install git
$ sudo apt install git
깃의 버전을 확인하며 잘 설치되었는지 확인하자.
$ git --version
git version 2.17.1
CLI로 깃을 사용하기 위해서는 기본적 리눅스 명령어를 알아두는 것이 좋다. 약어가 직관적이기 때문에 익히기 쉬울 것이다.
명령어 | 옵션 | 설명 | 사용 예 |
---|---|---|---|
pwd | print working directory / 현재 작업중인 디렉토리 출력 | pwd | |
ls | 현재 위치한 곳의 파일과 하위 디렉토리 출력 | ls | |
-a | 숨긴 파일까지 출력 | ls -a | |
-l | 파일의 상세 정보도 출력 | ls -la | |
cd | change directory / 디렉토리 이동. 명령어 뒤에 디렉토리를 입력 | cd Users | |
mkdir | make directory / 디렉토리 생성. 명령어 뒤에 디렉토리 이름 입력 | mkdir tempDir | |
rm | remove / 삭제 | ||
-r | 디렉토리 내 하위 디렉토리와 파일까지 삭제 | rm -r tempDir | |
cat | concatenate / 문서 내용을 확인 | cat test.txt | |
vim | 리눅스의 기본 편집기인 vim을 실행시킴 | vim |
옵션을 사용할 때는 슬래시(-)를 앞에 붙이고, 옵션 간에는 순서가 상관이 없다.
-la
든-al
든 상관 없다는 뜻
.
은 현재 디렉토리를,..
은 부모(상위) 디렉토리를,~
는 홈디렉토리를 가리킨다.
이고잉. 2019. Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문. 이지스퍼블리싱