-
Git과 Github?CS 2023. 11. 26. 17:55
개발을 한 번이라도 해본 사람이라면 git과 github를 한 번쯤은 들어봤을 것이다.
개발을 하다보면 중간에 오류가 생겨서 이전 코드로 돌아가고 싶은 경우가 발생하게 되고, 협업 프로젝트에서 이러한 소스코드 혹은 파일 관리 등에서 여러 이슈가 발생하게 되는데, 이때 우리는 git과 github를 사용할 수 있다.
git과 github 같은 경우에는 소프트웨어 개발의 버전 관리와 협업을 위한 서로 연관된 도구이다.
Git?
Git은 소규모부터 대규모까지 여러 프로젝트의 소스 코드 버전 관리 시스템으로 로컬 저장소와 원격 저장소를 연결하여 로컬의 소스 코드 변경 사항을 추적하고 원격 저장소에 push하여 업데이트하거나 이러한 업데이트된 소스 코드를 pull 또는 fetch할 수 있는 분산 버전 제어 시스템(VCS)이다.
버전 관리 시스템(VCS)?
그럼 이 버전 관리 시스템이 무엇이냐,
파일의 특정 변화 시점의 버전을 기록해두고, 필요시 다시 꺼내올 수 있는 시스템을 의미한다.
기록해둔 시점 이후에 오류가 발생해서 이전 작업으로 돌아가고 싶은 경우 돌아갈 수 있고, 새로운 버전을 업데이트 할 수도 있고, 수정된 소스 코드를 비교해 보거나 업데이트 받을 수 있으며, 문제 발생 시 어떠한 작업에서 문제가 생겼는지 확인 할 수 있다.
이러한 버전 관리는 로컬에서 작업하던 내용을 원격으로 관리하기 때문에, 만일 로컬에서 파일에 이슈가 생긴다면 원격에 올려둔 내용을 받아서 쉽게 복구가 가능하다.
기존의 버전 관리 시스템과의 차이
첫 번째로 분산 버전 관리가 가능하다는 점이다. 이는 협업 과정에서 하나의 원격 저장소를 기준으로 모든 개발자에게 전체 개발 기록을 포함하여 원격 저장소 전체에서 복사본을 개발자가 갖게 되고, 이를 독립적으로 작업하고 나중에 변경 사항을 병합(merge)할 수 있어 협업 측면에서 유연성이 향상 된다.
두 번째로는 브랜치 생성과 머지의 자유로움이 장점이다. 현재 작업하고 있는 것과 분리하고 싶거나 할 때는 자유롭게 브랜치를 생성해도 되고, 작업이 끝나면 다른 브랜치에 머지를 했다가 필요없어지면 해당 브랜치를 삭제할 수도 있다.
GitHub?
Github란 Git 리포지토리에 대한 호스팅을 제공하고 버그 추적 및 작업 관리, 코드 검토와 같은 협업 기능을 제공하는 웹 기반 플랫폼이다.
버전 관리 도구인 Git을 기반으로 소스 코드를 호스팅하고, 협업 지원 기능들을 지원하는 웹 서비스인데, 쉽게 말하자면 Git으로 관리하는 프로젝트를 저장하는 원격 저장소 서비스라고 할 수 있다.
이러한 GitHub는 모두 무료 요금제로 운영되며, 무제한 용량의 public 또는 private 저장소를 제공한다.
Git으로 관리한 프로젝트를 GitHub의 리포지토리에 올리고, 이렇게 올려진 소스 코드의 버전 변화를 한 눈에 직관적으로 볼 수 있게 도와준다. 또한 협업 프로젝트에서 어떤 사람이 어떤 걸 추가를 했는지, 어떤 부분을 수정했는지도 알 수 있고 무엇보다도 이러한 원격 저장소에 올려둔 내용을 원래 작업하던 PC가 아니여도 다른 공간에서 새롭게 pull/fetch 받아서 새롭게 작업을 이어갈 수 있다는 장점이 있다.
public 저장소의 내용은 오픈소스 소프트웨어가 되어, 해당 기능을 필요로 하는 사람들이 직접 내려다가 쓸 수도 있는데, 이러한 오픈소스 소프트웨어를 통해서 사람들이 기존의 기능에서 더 업데이트된 서비스를 개발할 수 있고, 개발의 폭을 늘려갈 수 있는 장점이 있다.
'CS' 카테고리의 다른 글
동기 및 비동기 처리 (0) 2023.12.03 GitHub workflow (2) 2023.11.26 JSON, XML, YAML? (1) 2023.11.26 API(Application Programming Interface) (1) 2023.11.26 FE(Frontend)와 BE(Backend) (0) 2023.11.19