[Git] Git과 GitHub 학습

요즘 프로젝트를 여러번 하다보니깐 Git과 GitHub같은 Git호스팅 서비스의 사용빈도가 많이 늘었다.

그러다보니 Git사용법을 자연스레 공부하게 되었는데 공부하면서 정리한 것을 포스팅해보려고 한다.

Git이란?

  • 2005년에 리눅스(Linux) 커널 개발을 목적으로 리누스 토발즈가 개발한 분산형 버전 관리 시스템(Version Control System)이다.
  • 간단하게 말하면 소스코드의 기록을 남기고 관리하는 프로그램이다.
  • 개발을 하다보면 이전 소스코드로 돌아가거나 다른 사람과의 협업이 필요할 때가 많은데 이 때 GIT을 활용하면 매우 편리하다.


GitHub와의 차이점

  • 생각보다 Git과 GitHub 혹은 GitLab같은 Git저장소 호스팅 웹서비스를 혼동하는 사람이 많다. 나도 처음엔 헷갈렸는데 일단 이 둘은 긴밀히 연결되어 있지만 다른 개념이다.
  • Git은 로컬환경에서 소스코드 형상관리를 하는 프로그램이고 GitHub는 Git의 형상관리 기록(저장소)을 호스팅해주는 서비스이다.
  • Git만 사용하면 한 컴퓨터(로컬)에서만 형상관리가 가능하고 이것을 다른 컴퓨터에 그대로 옮겨오고 싶을 때 GitHub같은 서비스를 이용할 수 있다는 뜻이다.


사용 예

  • 예를 들어 개발자 2명이서 프로젝트를 진행중이고 호스팅은 GitLab을 사용한다고 가정하자

image

  • 현재 원본 소스코드는 GitLab에 올라가 있고 개발자1이 데스크톱에서 기능추가 작업을 하다가 급하게 외출할 일이 생겨 노트북으로 작업을 이어나가야 하는 상황이다.
  • Git을 안쓴다고 가정하면 작업하던 소스코드파일을 이메일로 보내거나 원드라이브 같은 클라우드 저장소에 넣어 노트북으로 작업하던 파일을 옮겨 작업해야한다. 너무 비효율적이다.
  • 이럴 때 GitLab에 작업내역을 저장하고 업로드해놓는다면 간단하게 작업을 이어나갈 수 있다.

image

image

  • 위 그림만 봤을 때 저게 클라우드 저장소로 옮기는 것이랑 뭐가 다르냐고 할 수 있겠지만 GitLab을 이용해서 코드를 업로드(Push)하고 변경내역을 다운로드(pull)하는건 CLI환경에서 명령어 입력만으로 간편하게 할 수 있다는 편리함이 있다. 파일을 옮기고 할 필요가 없는 것이다.


Git 학습 방향

  • 나같은 경우에는 처음엔 Git에 익숙하지 않아서 GUI 프로그램의 도움을 많이 받았다. (Gitkraken) GUI 프로그램을 통해 Git작업을 하면서 Git이 어떤식으로 동작하고 구성되어 있는지 확인할 수 있었다.
  • Git에 익숙해진 다음부터는 Git Bash를 통해 CLI환경에서 Git작업을 하고 있고 현재는 GUI보다 편해져서 왠만한 작업은 CLI환경에서 작업하고 있다.
  • Git 사용법을 익힌다면 나와 같은 방식을 참고해도 좋을 것 같다.

댓글남기기