본문 바로가기
Kaggle마스터가 되기 위한 몸부림/git-github

[협업을 위한 git & GitHub] 1. 직관적으로 이해하는 git & GitHub

by Steve-Lee 2019. 11. 14.
본 정리노트는 투빅스 10기 정윤호의 Git강의와 강의자료를 바탕으로 작성되었습니다.

안녕하세요 Steve-Lee입니다.

오늘은 '협업을 위한 git & GitHub' 첫 번째 시간으로 git과 GitHub에 대해 알아보도록 하겠습니다.

그럼 시작하겠습니다!

 

제 블로그의 글이 도움이 되셨다면 좋아요와 댓글 부탁드리겠습니다.글을 지속적으로 작성하는데 많은 동기부여가 됩니다.감사합니다. 오늘도 편안한 하루 보내세요!🙏

 

<목차>

1. git이란 무엇인가?

2. git과 GitHub은 무엇이 다를까?

3. Working Directory, Local Repository, Remote Repository에 대하여

4. 정리

1. git란 무엇인가?

파일 이름은 그대로 두고 버전 관리는 컴퓨터가 하게 하자
  • git은 '버전 관리 툴'이라고 생각하면 좋습니다
  • 그렇다면 버전 관리(Version Control)이란 무엇인지 알아보도록 하겠습니다.

사실 우리는 알게 모르게 버전 관리를 해오고 있었습니다.

이것이 final! models_final.py

이게 파이널...! models.final2.py

........ models_0116final.py!!

파일의 버전을 관리해오고 있었던 것입니다

그런데 위와 같은 방법으로 버전을 관리할 경우, 어떤 문제점이 발생할까요?

버전이 많이 쌓이다 보면 특정 순간부터 우리가 어떤 내용을 수정했는지 파악하기 어렵게 될 수 있습니다.

지난 주에 어떤 버전관리를 했는지 정확하게 떠올리실 수 있으신가요?

아마도 협업을 하는 상황에서는 버전 관리가 더욱 중요시 될 것 같습니다.

혼자서도 관리하기 어려운 파일들을 여러명이서 관리해야 할 테니깐요...

 

2. git과 GitHub은 무엇이 다를까?

그렇다면 질문이 있습니다.

Q. git과 GitHub는 무엇이 다른걸까요?

우선은 직관적으로 이해하고 넘어가보도록 하겠습니다.

  • Summary
    • Git is version management tool using local repository
    • Github is remote repository for collaboration by multiple git users
  • Git이 local repository의 버전 관리 도구라면 Github은 협업을 위한 원격 저장소인 것입니다.

직관적으로 살피고 넘어가기에는 걸리는 부분들이 있습니다.

그렇다면 Local Repository와 Remote Repository는 무엇일까요?

 

3. Working Directory, Local Repository, Remote Repository

  • Working Directory: 내 PC안의 작업공간들 중 git을 사용하는 작업공간
  • Local Repository: 임시 버전들이 올라가는 공간
  • Remote Repository: 최종 확정본이 올라가는 공간

Working Directory는 단어 그대로 내 PC 안의 작업공간들 중 git을 사용하는 작업공간입니다

Local Repository는 임시 버전들이 올라가는 공간 / Remote Repository는 최종 확정본이 올라가는 공간입니다

 

Local Repository와 Remote Repository

Local Repository는 임시 버전들이 올라가는 공간이라고 했습니다. 개인 PC에 파일이 저장되는 개인 전용 저장소가 바로 Local Repository입니다.

Remote Repository는 최종 확정본이 올라가는 공간이라고 했습니다. Remote Repository를 통해 파일이 원격 저장소 전용 서버에서 관리되며 여러 사람이 함께 공유할 수 있게 되는 것입니다.

아래의 그림을 통해 협업하는 프로젝트를 떠올릴 수 있습니다.

  • 개인 PC에서 개인 전용 저장소인 Local Repository를 통해 작업하고
  • 협업한 버전들을 Remote Repository를 통해 관리할 수 있게 되는 것입니다

 

Working Directory에서 Local Repository로 직관적인 이해

$ git init
$ git add
$ git commit

Local Repository에 commit하기 까지의 과정

Local Repository에서 commit을 하는 과정을 통해 Working Directory에서 Local Repository를 이해해보도록 하겠습니다.

  • $ git init: 현재 디렉토리에 git을 적용하겠다고 git에게 알립니다(start woking area)
  • $ git add: git에게 해당 파일을 버전 관리해달라고 알립니다(starting area에 등록)
  • $ git commit: 하나의 버전을 저장소 히스토리에 저장합니다

 

$ git push

  • 로컬 저장소에 있는 내용을 원격 저장소에 저장합니다

git push

$ git pull

  • 원격 저장소에 있는 내용을 Local Repository에 반영합니다

git pull

Summary

오늘은 git과 GitHub에 대해 알아보았습니다.

우리가 평소에 해오고 있던 버전관리를 위한 유용한 tool인 git과 원격 저장소를 통해 프로젝트를 관리할 수 있는 GitHub에 대한 직관을 알아가셨으면 합니다.

앞으로 git과 GitHub을 활용하는데 도움이 되는 유용한 정보들로 찾아뵙도록 하겠습니다.

감사합니다. 오늘도 좋은 하루 보내세요!🙏

댓글