home search
Git
GitHub
Git과 GitHub
2021. 12. 24

👀1. Git(깃)이란

😇1) Git의 개발 배경

리누스 토발즈(Linus Torvalds)가 2005년 발표한 시스템으로, 오픈 소스 방식으로 진행하던 작업 환경을 개선하기 위하여 만들어졌다. ‘지옥에서 온 관리자’라고 소개된 깃은, 리눅스(Linux) 개발자들이 소스코드를 효율적으로 관리할 수 있도록 했고, 오늘날 많은 소프트웨어들이 깃으로 관리되고 있다.

😛2) Git의 용도

크게 세 가지 용도를 갖추고 있다.

  • 버전 관리 (version control) 가장 중요한 기능이다. 수정 및 변경 사항이 발생할 때마다 새 문서를 복사하고, 저장하는 수고를 덜어준다. 수정한 기록(수정한 사람, 일시, 내용 등)이 모두 기록되며 필요에 따라서는 복원할 수도 있다.

    초안, 수정1, 수정2, 최종, 최최종, 최최최종, 진짜 최종…. 등의 수고를 덜 수 있다.

  • 백업 (backup) 데스크탑이나 노트북, USB나 외장하드 등 물리적 저장소는 파일 유실이나 손상 등의 위험을 가지고 있다. 다른 저장소에 백업하는 방법도 있는 반면 온라인 서비스(ex. Google Drive, Dropbox) 역시 애용되고 있는 방법 중 하나이다. GitHub 등 원격 저장소가 쓰인다.

  • 협업 (collaboration) 원격 저장소, 즉 온라인 서비스를 이용하면 여러 사람이 동시에 접근하고 수정할 수 있으므로 협업에 깃이 쓰이기도 한다. 누가 어디를 어떻게 수정했는지 기록도 남기에 오류 시 복원도 가능하다.

💻2. Git 프로그램

깃은 특정 프로그램 이름이라기보다는 시스템에 가깝다. 스마트폰과 아이폰의 관계가 있다면 ‘스마트폰’이라는 제품군에 해당하는 것이다. 아이폰, 즉 제품에 해당하는 깃 프로그램, 혹은 깃 클라이언트 프로그램은 깃을 편리하게 사용할 수 있도록 해준다.

깃허브 데스크톱(GitHub Desktop)은 GitHub(깃허브)에서 제공하는 프로그램으로, 깃의 복잡한 CLI(Command Line Interface) 작동 대신 GUI(Graphic User Interface, 그래픽 사용자 인터페이스)로 구현하여 쉽게 깃을 사용할 수 있도록 한다. 기본적 기능 위주로 구성되었으며, 고급 기능은 부족한 편이다.

토터스깃(TortoiseGit)은 윈도우(Windows) 운영체제 전용이다. 윈도우 탐색기의 빠른 메뉴(우클릭 시 나타나는 것)에 추가된다.

소스트리(SourceTree)는 고급 기능까지 사용할 수 있도록 한다. 물론 기능이 많은 만큼 난이도가 높은 편이다.

커맨드 라인 인터페이스(Command Line Interface, CLI)는 흔히 아는 ‘까만 창’에 직접 타이핑으로 입력하는 방식이다. (‘까만 창’=터미널 창) GUI 환경보다 사용하기 어렵다. 리눅스 명령어 및 깃 명령어를 알아야 하고 실수가 빈번히 발생한다. 그러나 위 프로그램들보다 빠르게 깃을 다룰 수 있으며, 반복 작업을 자동화시킬 수 있다는 점 등 이점도 분명히 존재한다. 개발자들 대부분은 CLI로 깃을 사용하는 편이다.


📁3. 원격저장소와 GitHub

로컬 저장소(local repository, 이하 ‘로컬’)은 본인의 컴퓨터에 파일을 저장할 수 있는 공간을 말한다. 즉 데스크탑이나 노트북의 저장소, USB나 외장하드 등을 말한다. 반면 원격 저장소(remote repository)는 로컬이 아닌 다른 컴퓨터나 서버의 만든 저장소이다. 원격 저장소를 활용하면 다른 사람들도 접근하기 쉽고 서버와 협업의 기능을 백분 활용할 수 있다. 로컬과 연결하여 파일의 버전을 관리한다.

GitHub(깃허브)는 원격 저장소 중 하나로, 인터넷에서 제공되는, 깃 사용을 위한 원격 저장소 제공 서비스이다. 우리가 사용할 만한 대부분의 기능이 무료로 제공된다. GitHub 홈페이지

  • 깃을 설치하지 않고도 깃의 버전 관리 기능을 사용할 수 있다.
  • 로컬 저장소를 백업하거나 협업에도 유용하게 사용된다.
  • 개발 이력을 남길 수 있다. 일명 ‘잔디심기’라 하는데, 깃허브에서 커밋(commit)을 하게 되면 날짜별로 기록이 남는다. 자주 커밋할 수록 진한 초록색이 남는다 하여 잔디심기라 부른다. 개발자 지원을 할 때 깃허브 계정을 요구하는 곳들도 많다
  • 다양한 오픈 소스를 접하고 사용하거나 참여할 수도 있다. 레포지토리가 private가 아닌 이상 누구나 접근이 가능하다. 즉 ‘공개’가 된다는 것인데, 해당 코드를 분석하여 공부하거나 허용된 라이선스 하에서 사용할 수도 있다. Fork라는 기능이 있어 누가 얼마나 해당 소스를 사용했는지도 표시된다.


🛠3. Git 설치하기 (Windows)

포스팅은 윈도우, 혹은 리눅스 우분투 환경에서 진행하였다. 명령어는 동일하게 작동한다.

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 옵션은 현재 컴퓨터에 있는 모든 저장소에 같은 사용자 정보를 설정하도록 함


🛠4. Git 설치하기 (Ubuntu)

우분투에서는 터미널을 열어 아래 명령어를 차례대로 입력하여 Git을 설치할 수 있다.

$ sudo apt-get install git
$ sudo apt install git

깃의 버전을 확인하며 잘 설치되었는지 확인하자.

$ git --version
git version 2.17.1

🐧5. 기본적 리눅스 명령어

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! 지옥에서 온 문서 관리자 깃&깃허브 입문. 이지스퍼블리싱

arrow_upward arrow_downward
loading