Git CLI를 시작하기 위한 튜토리얼
앞으로 이 Git Tutorial 카테고리에서는 Git과 GitHub를 사용해서 파일의 버전을 관리하고 공유해서 협업하는 법에 대해서 설명해줄 예정입니다. Git, GitHub. 이 두 단어는 비슷해서 많이 혼동하지만 전혀 다른 것을 뜻합니다. 우리는 앞으로 Git으로 파일을 관리하고 GitHub에 그 관리되는 파일들을 올립니다. 이 차이에 대해서 정확하게 알아봅시다.
Git이란 무엇일까요?
Git은 분산형 버전 관리 시스템(Distributed Version Control System)입니다. 쉽게 말해서 파일들의 버전을 관리해주는 파일 관리자입니다. 어려워 보이는 이름과 달리 직접 사용하면서 익히면 쉽게 이해할 수 있습니다. 개인적으로 사용 설명서(man)도 너무 어려웠는데 제가 삽질하면서 익힌 내용들을 공유하고 싶습니다. :)
GitHub는 무엇일까요?
먼저, Git이랑 GitHub가 이름이 비슷해서 처음에 같은 것이라고 생각하기 쉽습니다. Git과 GitHub는 서로 다른 것입니다. GitHub는 Git으로 관리하고 있는 파일들을 공유하기 위한 구글 드라이브(or N드라이브)입니다. 일종의 개발자용 호스팅 사이트(구글 드라이브)입니다. 구글 드라이브에 Git으로 관리되는 파일을 올리면 단순히 언제 올라왔는지, 용량은 얼마나 되는지, 파일의 이름, 올린 사람, 등만 알게 됩니다. 하지만 GitHub에 우리가 Git으로 관리되는 파일을 올리면 사용자가 Git을 사용하여 기록한 내역들(버전의 History), 누가 이 버전을 수정했는지, 이 버전에서는 어떤 변화가 발생했는지, 어떤 issue가 언제 발생했는지, 최신 버전과 구 버전 코드의 차이가 무엇인지, ... 등 구글 드라이브의 기능 + 많은 개발자 편의 기능들까지 있습니다. 바로 GitHub에서 파일을 수정할 수도 있고 Hosting(웹 페이지로 게시)도 할 수 있습니다.
GitHub처럼 인터넷에 Git으로 관리되는 파일들을 저장할 수 있는 사이트로는 GitLab, BitBucket, 등 여러 가지가 있습니다. 그중에서 GitHub가 가장 인기가 많고 활성화가 많이 된 것 같아서 이번 튜토리얼의 실습용으로 채택했습니다.
이제 Git이 버전 관리를 해준다는 것은 알겠는데 어떤 것들을 어떻게 관리해줄까요?
- Git은 모든 파일들을 다 관리를 해줍니다!
Git을 이용하면 어떤 종류의 파일이든 기록을 해두었다가 제가 원할 때 꺼내서 사용할 수 있습니다. - Git은 Snapshot 방식으로 파일을 관리해줍니다. Snapshot은 한국어로 즉석 사진입니다. 마치 사진을 찍는 것처럼 특정 시점에 파일들을 모두 기록해 두었다가 나중에 앨범에서 특정한 시각의 사진을 꺼내듯이 파일을 꺼내올 수 있습니다.
- 예를 들어서, 제가 얼굴을 그리고 있는 상황에서
- 얼굴의 전체적인 형을 잡고 jpg(이미지) 파일을 Git에 기록!
- 눈을 그리고 jpg(이미지) 파일을 Git에 기록!
- 코를 그리고 jpg(이미지) 파일을 Git에 기록!
했다고 해봅시다.
이때 작업하고 난 후에 나중에 확인을 하니 코가 이상하게 깨져서 저장이 돼서 다시 그리고 싶습니다. 이런 상황에서 제가 Git으로 파일을 관리하고 있었다면 그냥 코를 그리기 전으로 쉽게 돌아갈 수 있습니다. - 프로그래머가 Git을 사용하고 있었더라면 심각한 버그가 번경 사항을 폐기한다던지 발생시킨 사람을 찾아서 꾸짖을 수 있습니다.
이렇게 파일들을 시간에 따라 기록하고 특정 시점에 꺼내올 수 있게 하는 것을 흔히 "버전 관리(Version Control)" "소스 관리(Source Control)" "형상 관리(Configuration Management)"라고 합니다. 버전 관리, 소스 관리, 형상 관리 전부 다 같은 말입니다. Git은 대표적인 버전/소스/형상 관리 툴 중 하나입니다.
Git으로 버전 관리할 수 있으면
- 전에 올렸던 코드와 오늘 올린 코드의 수정 내역을 쉽게 비교할 수 있습니다
- 누가 버그를 일으켰는지 쉽게 찾을 수 있습니다
- 파일이 누락됐거나 손상되었을 때 쉽게 찾아내서 복구할 수 있습니다
- 제가 작업한 파일들을 언제 어디서나 쉽게 다운받을 수 있습니다
- 저의 작업 내역을 깔끔하게 확인할 수 있습니다
- 협업할 때 편합니다
- ...
소스 컨트롤을 함으써 개발자는 정말 편해집니다!
요약!
Git은 버전/소스/형상 관리 툴, 쉽게 말해서 파일 관리해주는 소프트웨어!
GitHub는 Git으로 관리되는 파일들을 공유 위한 인터넷 저장소!
요즘 가장 유행하는 소스 컨트롤 시스템인 Git과 GitHub의 사용법에 대해 다음 글부터 설명해드리겠습니다.
댓글
이 글 공유하기
다른 글
-
저장소 안의 파일들의 상태를 확인해보자 :: git status
저장소 안의 파일들의 상태를 확인해보자 :: git status
2020.07.06 -
Git 저장소 만들기 :: git init
Git 저장소 만들기 :: git init
2020.07.06 -
Git을 사용하기 위해 알아야 할 용어 및 개념들 :: Repository, Commit, Local, Remote, GitHub
Git을 사용하기 위해 알아야 할 용어 및 개념들 :: Repository, Commit, Local, Remote, GitHub
2020.07.06 -
Git을 사용하기 위해 필요한 리눅스 명령어들
Git을 사용하기 위해 필요한 리눅스 명령어들
2019.12.26