
개발자라면 절대로 모를수가 없는 것이 이 Git과 GitHub다.
하지만 개발을 시작하는 분들 중 꽤 많은 사람들이(본인포함) 이 둘의 차이를 명확히 알지 못한다.
따라서 평생 개발을 하며 살아가기 위해 필수적으로 알아야 하는 Git과 GitHub의 차이와 기본적인 사용법에 대해서 정리하려한다.
- Git
로컬에서 관리되는 버전 관리 시스템 (VCS : Version Control System)
소스코드 수정에 따른 버전을 관리해주는 시스템
Git과 Github는 모두 코드를 관리할수 있도록 보관해준다는 공통점이 있지만 가장큰 차이는 로컬에서 관리하느냐 Github의 클라우드에서 관리하느냐이다. Git은 내가 관리하고자 하는 코드의 파일을 로컬에서 관리하므로 다른 사람들과의 협업하기에는 유용하지 않다. 하지만 개인적인 작업물을 본인 스스로만 관리하고자 할때에는 굳이 Github에 push하거나 하지 않고 사용할수 있기에 좀더 가볍게 사용할 수 있을 것 같다.
Git은 로컬에서 관리하는 프로그램이기에 운영체제에 맞는 방식으로 다운받아 설치할 수 있는데 mac Os의 경우 터미널에서 설치 할 수 있고 Window의 경우 https://gitforwindows.org/사이트에서 다운받은 파일을 설치하여 사용하면 된다. (근데 윈도우는 백엔드 개발하기에 불편한점이 많은것 같다...는 개인적인생각) Git은 분명 가볍고 빠르고 강력하지만 초반에 사용하고 세팅하는 부분이 쉽지 않다. 사실상 개발을 처음 접하는 사람에게 "Git을 혼자 설치해서 사용법을 익혀보세요!" 하면 매우 막막할 것 같고 나 역시 그랬다. 따라서 혹시 Git을 처음 접하고 사용해보려는 분들은 아래 사이트를 보고 참고하시면 좋을 것 같다.
https://subicura.com/git/guide/#git%E1%84%8B%E1%85%B4-%E1%84%90%E1%85%B3%E1%86%A8%E1%84%8C%E1%85%B5%E1%86%BC (Git/Github 안내서)
- Github
클라우드 방식으로 관리되는 버전 관리 시스템(VCS)
Github사의 클라우드를 무료로 대여하여 저장하는 시스템
다른사람들과 협업하기에 적합
Github는 Git으로 로컬에 저장한 내 코드를 Github클라우드에 저장하는 방식이다. 물론 외부에 공개하길 원치않는다면 private으로 설정하여 올릴 수는 있지만 근본적으로는 클라우드에 저장하는 개념이기에 local방식으로 저장하는 것보다는 더 공개적인 저장방식이다. Github에 올린 파일은 다른사람들과 공유하고 수정사항등을 파악하기 용이해서 현재 많은 기업들이 Github를 통해 개발내용을 공유하며 개발중이며 개인들 역시 무료로 제공되는 서비스이기에 자유롭게 사용할 수 있다.
물론 모든 로컬 브랜치를 푸시할 필요는 없고 보통 로컬 브랜치에서 하던 작업 중 의미있거나 공유할 필요성이 생길때 원격 저장소로 푸시하여 사용한다. 이러한 방식으로 프로젝트를 관리하는 방식을 GitHub Flow 방식이라고 한다. 이는 브랜치와 Pull Request 를 이용하여 적용할 수 있다.
쉽게 동작과정을 매우매우 간략하게 설명하자면, 작성한 코드를 다른 개발자와 공유하고 싶을때 공유하고자 하는 브랜치를 원격으로 push한다. 그리고 GitHub에서 푸시된 브랜치를 Pull Request(PR)한다. 이순간 다른 개발자분이 이 PR한 브랜치를 공유하여 코드를 함께 리뷰할 수 있게된다. VSCode에서 터미널을 통해 내 개인 GitHub저장소에 저장하는 터미널단축키 몇개를 정리해 보자
git add . :뒤의 .은 모든 파일을 추가한다는 뜻이므로 원하는 파일만 작성하여 그 파일만 올릴 수 있다.
git status :새로 변경되어 GitHub에 추가될 목록들을 보여준다.
git commit -m "커밋할 내용" :GitHub에 push할때 커밋할 메세지를 적는다.
git push origin 브랜치명 :지정한 브랜치를 원격 저장소로 푸시한다.
앞으로 개발을 하며 굉장히 자주 접하게 될 Git과 GitHub의 간략한 개념과 사용법을 작성해보았다. 사실 작성하는 도중에도 모르는 내용이 많아 다른 개발자분들이 정리해주신 내용을 많이 참고했다. 아직 나역시 Git과 Github사용에 미숙하기 때문에 열심히 사용법을 익히고 적용해보고 커밋도 자주자주 해야겠다. 참고로 커밋을 할때마다 잔디라는것이 생기는데 많은 개발자분이 1일1커밋을 통해 잔디를 매일매일 채우는것을 목표로 하신다. 나역시 잔디관리를 꾸준히 해야겠다. 내잔디는 너무 초라해 ㅜㅠ
'오늘의 공부 정리' 카테고리의 다른 글
06. 구조분해할당 (0) | 2022.07.27 |
---|---|
05. Rest-api와 Graphql-api (0) | 2022.07.27 |
04. HTTP Transfer (0) | 2022.07.20 |
03. MVC 패턴 (0) | 2022.07.18 |
02. Template Literal (0) | 2022.07.08 |