시작하기 전
최근 개인 프로젝트를 개발하며 Git에 대한 기본 사용법 또는 advanced 한 사용법에 대해 갈증을 느끼던 와중에 생활코딩의 이고잉님께서 강의하신 GITn 수업을 찾았고, 강의를 정리해가면서 복습할 목적으로 강의 전체에 대한 정리목적의 시리즈 포스팅을 이어나가려고 합니다.
이번 포스팅에서는 GITn 강의의 첫번째 수업인 GIT1 수업에 대해 정리해보도록 하겠습니다.
포스팅의 내용은 정리된 내용에 따라 매우 짧을수도 있으며 각 챕터마다 링크를 첨부해 내용이 부족해 이해가 안되시거나 햇갈리시는 분들은 강의를 직접 들어보시는 것도 추천드립니다.
이제 시작해보겠습니다! 화이팅!
강의 링크
생활코딩 GIT1 강의
https://opentutorials.org/course/3837
GIT1 강의전체 유튜브 플레이리스트
https://www.youtube.com/playlist?list=PLuHgQVnccGMCNJESahrVV-uYGMNYK_vMf
GITn - Git1
챕터
- 수업소개
- git을 구경합시다!
- git의 목적 1 - 버전관리 1, 버전관리 2
- git의 목적 2 - 백업
- git의 목적 3 - 협업
- git의 종류
- 수업을 마치며
1. 수업소개
“지옥에서 온 정보 담당자(Information manager from the hell)” 란 2005년 리눅스 운영체제의 개발자인 리눅스 토르발츠가 Git을 세상에 처음 소개할때 한 말이다.
26년 동안 1만명의 개발자가 오픈소스 개발 방식으로 2천만줄의 소스코드를 개발해 탄생한 운영체제가 바로 리눅스이다.
Git은 리눅스 토르발츠가 리눅스 운영체제를 더 잘 만들고, 잘 관리하기 위해서 만들어졌습니다.
2. git을 구경합시다!
Git의 3대 목적은 버전관리, 백업, 협업 으로 이 세가지에는 순서가 있는데 앞의 것을 이해하지 못하면 뒤에 것을 이해하지 못한다는 것이다. 앞의 것은 그것만으로도 할 수 있는 일들이 많지만 뒤에 것은 앞에 것에 의존하고 있는 기능으로, 앞의 내용을 이해하지 못한다면 뒤로 갈수록 어려워지고 할 수 있는 것들이 줄어든다.
3. git의 목적 1 - 버전관리 1, 버전관리 2
한 작업을 끝내고 Git에서 커밋 을 한다는 의미는 작업물에 변경 이력이 발생했으며 이를 저장소에 commit 하게 되면 내가 다시 작업을 이어가든 또는 다른 작업자가 참여하게 됐을때 커밋 히스토리를 확인할 수 있으며 “지금은 여기까지 작업했구나!” 라고 이해할 수 있다. 이게 바로 버전이고 Git에 commit을 통해 변경이력을 알리고 이력을 최신화한다는 것은 “버전을 생성하고 관리한다!”라고 이해할 수 있다.
4. git의 목적 2 - 백업
우리가 가지고 있는 컴퓨터는 언젠가는 고장날 것이고 언제 고장날지 모른다는 불확실성이 내재되어있다. 따라서 귀중한 정보라면 어디가에 백업을 해둬야 한다.
백업이란 우리가 버전관리 시스템을 이용했을때 얻을수 있는 아주 간편한 효용 중 하나이다.
Github.com은 백업이 가능한 버전 관리 시스템을 제공하는 글로벌 서비스로, Github.com의 내 저장소는 원격 저장소(Remote Repository)라고 하고, 내 디바이스에 있는 저장소는 지역 저장소(Local Repository)라고 한다.
지역(Local) 저장소에서 변경 내역을 commit하고 원격(Remote) 저장소에 push하면 지역 저장소와 같은 상태를 원격 저장소 또한 갖게되며 다른 작업자와 함께 작업을 하게되면 변경내역을 원격 저장소에 똑같이 push하고, 나 이외의 누군가가 수정한 원격 저장소의 최신 이력으로 자신의 지역 저장소를 갱신하기 위해 pull 할것입니다. 이러한 흐름이 바로 백업 이라고 하는 것이고 자연스럽게 협업 으로 넘어가는 징검다리가 됩니다.
5. git의 목적 3 - 협업
한가지 작업물을 가지고 작업자가 여럿이 있을때 같은 디바이스를 사용하지 않는 이상 어딘가에 공통의 최신 이력을 가진 공통의 작업물이 있어야 하며 이를 바탕으로 작업자들은 지역 저장소를 최신 이력으로 유지해야 하고, 혹시나 동일 파일 또는 동일 파일 내 동일 라인을 수정했을때 어떤게 최신이고, 어떤게 오류를 일으켰는지 또는 맞게 수정했는지 확인할 수 있도록 히스토리를 기록하고 최신 이력을 유지하는 것이 Git의 해주는 기능입니다.
6. git의 종류
Git이란 오픈소스 기반의 형상(버전) 관리 시스템으로, Git의 주요 생태계로는 웹 호스팅 서비스와 GUI 프로그램들이 있습니다.
Git 웹 호스팅 서비스
- 다수의 작업자들을 위한 원격 저장소를 제공
- 서비스: GitHub, GitLab, BitBucket
Git GUI 프로그램
대표적으로 아래와 같은 GUI 프로그램들이 있습니다.
- GitHub Desktop: https://desktop.github.com/
- SourceTree: https://www.sourcetreeapp.com/
- TortoiseGit: https://tortoisegit.org/
7. 수업을 마치며
앞으로 수업방향은 아래와 같습니다. 앞으로의 강의들은 실천적인, 실제 Git을 사용하실 분들을 위한 실천적 강의가 될 것입니다.
- Git1: Overview (현재 강의)
- Git2: Cli - Version
- 버전관리를 위한 수업
- Git3: Cli - Backup
- 백업이 필요한 사람들 위한 수업
- Git3: Cli - Collaborate
- 백업을 기반으로 협업까지 진행하는 수업
- tag, branch 등에 대한 수업