git

Git에 관하여

Sh4869 2020. 2. 3. 14:00

이 포스팅은 생활코딩 강의를 듣고 난 뒤 내용을 정리하는 포스팅입니다.

생활코딩강의

 

git을 구경합시다! - 생활코딩

수업소개 여기서는 git의 핵심목적을 소개하고, 앞으로 어떤 마음으로 공부하실지를 권유해드립니다. 강의

www.opentutorials.org


Git

IT업계에 종사하는 사람이나 공부하는 사람들의 경우 오래 전부터 git이라는 개념을 들어봤을것이다. 필자도 github을 사용하며 소스코드를 관리하고 있지만, 정확하게 git이란 무엇인지 어떤 기능들을 가지고 있고 어떤 의미를 담고 있는지에 대한 공부가 필요하다고 생각하게 되었다. 이를 위해 생활코딩의 수업을 들으며 관련된 내용을 포스팅하려고 한다.

 

Git의 3대 기능

git에 대한 구체적인 사용법을 알아보기전에, 우선 git이 어떠한 기능을 제공하는지 알아볼 필요가 있다. 각 기능의 구체적인 사용법들과 관련된 내용은 이후 포스팅에서 설명하려고한다. 우선 git이 제공해주는 기능들을 하나씩 살펴보자.

 

git이 제공해주는 3대 기능으로는 다음과 같은 기능이 있다.

 

  1. Version Control
  2. Backup
  3. Collaborate

대표적인 기능들에 대해 하나하나 알아보도록 하겠다.

 

Version Control

컴퓨터로 작업을 진행하는 경우 여러 종류의 필요한 파일과 데이터를 directory에 넣어서 관리하게 된다. 이러한 관리 방법을 토대로 작업을 진행하게되면 이전에 작업했던 내용의 보존을 위해 작업마다 version을 만들어 파일을 새로 만들어야 한다. 보고서나 ppt, 코딩 작업을 해보신 분들은 file.1.0 / file_final / file_real_final 등으로 파일 이름을 만들어가며 여러가지 파일 버전을 만든 경험이 있을것이다.

이러한 관리 방법은 파일도 많아지고 이름도 길고 복잡해지며 파일이 많아질수록 Version별 설명역시 필요하게 된다. 즉 복잡해지고 문제가 발생하게 되는 것이다. Version Control은 이러한 문제를 해결하기 위해 도입되었다.

Git의 대표적인 기능중 하나는 바로 이러한 문제를 해결하는 Version Control을 가능하게 해준다는 것이다. Git의 관리를 받는 영역은 작업을 수행할 때 마다 수정사항에 대한 Version별 구분을 가능하게 해준다. Git은 Version에 대한 설명을 추가하여 이를 바탕으로 Version을 구별해준다.

이러한 기능을 제공해주는 명령어는 다음과 같은 것들이 있다.

 

  • commit - 새로운 Version을 만들어줌
  • message - version별로 설명을 추가해주며 이를 기준으로 version을 구별해줌

이러한 기능을 이용하여 Git은 파일의 수정 된 내용, 추가/삭제 된 파일이나 폴더를 Version별로 손쉽게 구분할 수 있게 해준다. 또한 원하는 Version의 상태로 손쉽게 돌아갈 수 있게 해준다.

Backup

작업자가 작업을 수행하고있는 경우, 데스크탑만이 아니라 다른 곳에도 데이터를 저장하여 데이터의 유실을 방지하는것이 중요하다. 당장 컴퓨터를 사용하는 여러분도 데이터의 유실을 방지하기 위해 외장하드나 외부 드라이브를 이용하여 데이터를 백업해본 경험이 있을 것이다.

git의 대표적인 기능 중 하나는 이러한 backup서비스를 제공해준다는 것이다. 대표적으로 github이라는 서비스를 들 수 있을것이다.

github.com

 

Build software better, together

GitHub is where people build software. More than 40 million people use GitHub to discover, fork, and contribute to over 100 million projects.

github.com

github은 git의 Version별 내용을 원격 저장소인 github에 저장할 수 있게 해준다. 이를 이용하여 우리는 전문가들이 관리하는 거대한 컴퓨터에 우리의 정보를 전달하여 백업할 수 있게 되는 것이다. 이러한 기능을 제공해주는 명령어는 다음과 같은 것들이 있다.

 

  • push - 원격 저장소에 변경된 내용을 저장
  • pull - 원격 저장소의 내용을 가지고 옴

github으로 연결된 pc

이러한 방법으로 내 코드를 github에 백업하게 되면 내가 새로운 컴퓨터를 사거나 다른 컴퓨터를 이용할 때 github에 접근하여 내가 백업한 정보를 가지고 올 수 있게 된다.

 

또한 원격 저장소에 저장된 코드는 다른 곳에서 github에 접근하여 사용할 수 있기에 dropbox와 같은 효과도 얻을 수 있게 된다. 즉, 협업 tool로서의 가치를 지니게 된다.

Collaborate

백업의 기능은 자연스럽게 협업의 기능으로 넘어가게 된다.

원격 저장소를 매개로 여러 사용자가 push/pull을 이용하여 작업을 주고 받을 수 있다. 그렇다면 같은 파일이나, 데이터의 같은 영역을 서로 다르게 수정하여 저장하는 경우 문제가 발생하지 않을까 하는 의문을 가질 수 있다.

그러나 git은 이러한 일이 일어나지 않도록 스스로 교통정리를 해주는 엄청난 기능을 제공해준다.

git이 제공해주는 이러한 기능들의 구체적인 방법과 사용법은 다음 포스팅부터 차차 알아보도록 하겠다.