Git 입문, Github가 무엇인가? VCS는 또 무엇일까?

✏️ 시작하면서…

본 내용은 gbc 1주차에 ProgrammerBase를 통해 배운 내용이다.
강의해주신 ghost 한찬솔님께 감사드리며, 더욱 자세한 내용은 이 곳에 기록되어있다.
본 내용은 위 사이트를 참고했고, 내가 이해한 것과 더욱 간결하게 글을 줄일 수 있다면 줄이며 나만의 글로 정리했다.
위 자료를 보고 공부를 했기 때문에, 대부분의 베이스 글은 위 사이트를 참조했다는 사실을 다시 한번 알린다.


🔗 Version Control System(VCS)

앞서, 우리는 github blog를 제작하는 법을 배웠다.
참고: Github Blog
그리고, docker설치법과 간단한 명령어를 배웠다.
참고: 도커(Docker) 입문
또, 커스터마이징된 도커에서 $ sudo apt install git으로 git을 설치할 수 있다.
github blog도 제작했고, 도커에서 git도 쓸 수 있게 되었다.
그렇다면, git이라는 것은 무엇일까?

git을 알기 전에, VCS부터 알아보자.
VCS는 버전 컨트롤 시스템(Version Control System)이다.
이는, 문자 그대로 프로젝트의 버전을 손쉽게 다룰 수 있게 해준다.
VCS는 소스코드의 변화 과정을 알려주며, 소스코드의 백업에도 도움을 준다.


🕵️ git의 필요성

눈치챘겠지만, git은 VCS의 한 종류이다.
나는 예전에 내가 만든 프로그램의 소스를 .txt형식으로 저장하거나, 네이버 메일에 소스를 백업했다.
이러한 소스코드의 백업 방식은, 작은 프로젝트에서는 괜찮을 것이다.
하지만, 규모가 큰 프로젝트라면?

예를 들어보자.
Unity로 게임을 만들고 있다고 가정하겠다.
당신은 소스코드뿐만 아니라, image파일, mp3파일 등 수많은 파일들을 가지고 있다.
이 또한, 네이버 메일에 백업을 할 것인가?
백업은 했다고 치자.
당신은 프로젝트Ver0.1의 파일들은 백업을 해놓았다.
그러나, 프로젝트Ver0.3은 아직 백업을 하지 않고, Local에 있는 상태이다.
이 때, 컴퓨터가 어떠한 이유로 정보가 다 날아가버렸다.
또는 실수로 키우던 고양이가 지워버렸다고 생각해보자.
(아주 불가능한 일은 아닐거라 생각한다)
이 상황에서, 우리는 프로젝트Ver0.3을 되살릴 수 있을까?

또 하나의 예를 들어보자.
당신은 15명이서 하는 규모가 약간은(?) 큰 프로젝트의 개발자이다.
이러한 VCS가 없다면, 당신은 누가 무엇을 고쳤는지 모르고, 소스코드가 어딨는지도 찾지 못할 수 있다.

위의 예시는 조금 극단적일 수 있다.
그렇다고 현실에서 아주 일어날 수 없는 이야기는 아니다.
(고양이 이야기도 충분히 있음직한 이야기다.)
우리는 위에서 다룬 문제점들을 git으로 해결할 수 있다.
아직도 git의 필요성을 못느끼겠는가?


🤔 git이 무엇인가?

그토록 위에서 언급했던 git.
도대체 git이 무엇인가?
git은 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템이다. 출처:위키백과
또한, git은 가장 인기있고 자주 사용되는 VCS이다.
우리는 우리의 코드들과 패키지들을 git을 이용하여 github에 올릴 수 있다.
git이 무엇인지에 대한 딱딱한 설명은 이 곳에서 정독하길 바란다.
우리는 바쁘므로 대충 위에서 말한 느낌이 git의 느낌이라는 것을 알아줬으면 한다.


📝 git이 파일을 관리하는 상태

git은 아래와 같은 상태로 파일들을 관리한다.

  • untracked 상태: git이 변경사항을 추적하지 않는 파일.
    만약 우리가 Github홈페이지에서 New Repository로 새 레포지토리를 생성했다면, 이 레포지토리가 untracked 상태인 것이다.
  • modified 상태: 파일을 변경했지만, 아직 스테이징이 되지 않은 상태
  • staged 상태: 변경된 파일을 커밋이 될 리스트에 포함시킨 상태.
    git add 한 상태라고 보면 된다.
  • committed 상태: git 데이터베이스에 하나의 버전으로 저장된 상태
    git commit한 상태라고 보면 된다.

🐈‍ Github(깃허브)

여러분들은 개발을 하면서 Github(깃허브)라는 단어를 많이 들어봤을 것이다.
Githubgit레포지토리를 다른 사람과 공유할 수 있는 플랫폼이다.
이 곳을 통해, 우리는 협업이 가능하고, 나의 프로젝트를 담아볼 수 있다.
또, 전세계 사람들이 올린 public한 레포지토리를 구경할 수 있다!

이렇게 유용한 Github의 계정이 아직 없다면 당장 Github 사이트 에서 회원가입 하길 바란다.

++추가로 요즘은 Github에 있는 레포지토리들을 포트폴리오로 취급한다고 한다.
Github에 자신의 프로젝트를 잘 정리해서 많이 올려둬서 나쁠건 없어보인다.


🛠️ git 설치

마지막으로 git 설치를 끝으로 포스팅을 마무리하겠다.

우선, github에 계정이 있다고 가정한다.

  1. Ubuntu Linux(내가 커스터마이징한 Ubuntu에서 git을 쓰기 위해, Ubuntu Linux도 넣었다)
    • Docker 안에서, Ubuntu Linux를 사용한다면, $ apt install git으로 설치가 가능하다.
      git 설치 후, 아래 명령어 입력.(초기 설정)

      $ git config –global user.name [NAME]
      $ git config –global user.email [EMAIL]

  2. MacOS
    1. MacOS git Install
    2. git 설치 후, Git Bash를 실행하고 아래 명령어 입력.(초기 설정)

      $ git config –global user.name [NAME]
      $ git config –global user.email [EMAIL]

  3. Windows
    1. Windows git Install
    2. git 설치 후, Git Bash를 실행하고 아래 명령어 입력.(초기 설정)

      $ git config –global user.name [NAME]
      $ git config –global user.email [EMAIL]

여기서 언급한 NAME, EMAIL은 본인의 github IDgithub EMAIL임을 기억하자.

Leave a comment