매일 매일 성장하는 섭섭군

Git&GitHub 알아보기 본문

개발관련/개발상식

Git&GitHub 알아보기

섭섭군 2020. 8. 28. 14:53
반응형

Git 과 GitHub는 무엇일까?

Git은 버전관리시스템(VCS, Version Control System) 프로그램입니다.
GitHub는 Git을 업로드 할 수 있는 웹사이트 중 하나입니다.
그렇다면 버전관리시스템이란 무엇일까요? Git이 메인이니 간략하게 설명하도록 하겠습니다.

✓ 버전관리시스템(VCS, Version Control System)

버전관리시스템이란 말 그대로 버전을 관리하는 시스템입니다. 이력서, 자기소개서, PPT등 서류 작업을 할때 이런 제목들을 사용해 보신 적이 있나요?

"최종 발표 PPT.pptx"
"진짜 최종 발표 PPT.pptx"
"진짜진짜최종 발표 PPT.pptx"
"이게 진짜최종 발표 PPT.pptx"

딱 봐도 뭔가 최종으로 완료된 PPT인지 햇갈립니다. 이러한 것을 다음과 같이 바꾸면 어떨까요??

"발표_PPT_ver1.0.pptx"
"발표_PPT_ver1.1.pptx"
"발표_PPT_ver1.2.pptx"
"발표_PPT_ver2.0.pptx"

이런식으로 버전을 구분해서 작업한다면 최종으로 완료된 PPT가 무엇인지 한눈에 알 수 있습니다.
게다가 시간의 흐름에 따른 진행 사항을 확인 할 수 있습니다.

위 예시를 보고 버전관리가 필요하다라는 것을 알수 있다.
버전관리시스템은 위에서 보여준것 보다도 더 많은 일을 할 수 있다.

  • 백업 및 복구 : 사고로 내용이 날아가거나, 무언가가 잘못되었을 때 다시 이전의 내용으로 복구할 수 있다.
  • 버전 관리 : 시점에 따라 확인이 가능하다.
  • 변경점 관리 : 누가, 언제, 무엇을, 어떻게 변경했는지 알 수 있다.
  • 협업 : 같이 일하는 사람에게 수정사항을 쉽게 공유 할 수 있고, 복사후 동시다발적으로 개발이 가능하다.

✓ Git

Git은 "분산형 버전 관리 시스템" 입니다. 뭔가 이름부터 협업하기 좋을것 같은 느낌이 들지 않나요?
개발자들은 각자 개발을 진행 한 후에 개발한 것을 합칠지? 아니면 합치지 않을지? 결정할 수 있습니다.
또한 서버에 접속하지 않으면서도 작업을 진행할 수 있습니다.
대표적인 Git 명령어들을 보면서 어떠한 기능이 있는지 확인 할 수 있습니다.

변경된 사항 받아오고 변경한 사항 올리기
- Clone : 원격 Git 저장소로부터 데이터(버전정보) 내 컴퓨터(로컬저장소)로 가져오기 
- Pull : 원격저장소에 있는 최신 버전정보 가져와서 내 로컬저장소와 병합하기
- Commit : 파일 및 폴더의 추가/변경 사항을 기록하기
- Add : commit 할 파일 및 폴더 선택하기
- Push : 내 컴퓨터에 있는 데이터(버전정보)를 원격 Git 저장소에 업로드하기 

독립적으로 개발하고 병합하기
- Branch : 독립적으로 개발 할 수 있도록 해당 시점으로 부터 데이터(버전정보 복사)
- Pull Request : 독립적으로 개발한것 합칠 수 있도록 승인 요청하기
- Marge : Branch로 진행한 것 병합하기

✓ GitHub

GitHub는 Git을 저장할 수 있는 원격저장소(서버)입니다. 즉, 개발자들의 버전제어 및 협업을 위한 플랫폼입니다.
Github 이외에도 다양한 서버들이 있으며 직접 구축하여 사용도 가능합니다.

정리하면서

Git에 대해서 아주 일부만 사용하고 있다고 느꼈다. 추후 회사에 들어가 협업을 원활하게 하기 위해 좀 더 공부를 진행해야 겠다.

공부하기에 좋은 링크

참고 페이지
https://blog.naver.com/opusk/220984046181
https://namu.wiki/w/버전%20관리%20시스템
https://backlog.com/git-tutorial/kr/

반응형
Comments