새로 들어왔어요? git은 알고 있죠?
요즘 신입사원으로 들어가면 당연히 git정도는 다룰 줄 알아야 한다고 합니다. 전 처음엔 버전 관리 시스템을 svn으로 시작한 터라 git을 사용하는 프런트 엔드 쪽으로 옮겼을 때 git을 잘 몰라서 창피했던 적이 있었습니다. 대부분 일반 개발자가 하는 코딩 공부가 그러하듯 어려운 건 많지 않습니다. 다만 우리가 아직 경험하지 못한 것일 뿐…
사실 git을 모른채 입사하는 신입사원은 많은 것 같습니다. 코드를 커밋한다는 말에 두려움이 생기는 것이 git 인 것 같습니다. 하지만 이제 깃을 배우려는 분들은 깃을 두려워할 필요가 없습니다. 웬만해서 깃의 버전 관리를 망가뜨리기는 쉽지 않으니깐요.
git과 git hub에 조금 친해져 보겠습니다!! 이번 포스트는 git과 github의 차이점을 모르신 분들을 위한 글입니다.
Git 이란 무엇인가?
Git은 본질적으로 소스 제어 시스템 혹은 버전 관리 시스템이며 매우 인기 있고 널리 채택된 시스템입니다. git과 같은 소스 제어 시스템은 개발 히스토리를 기록하고 관리해 주는 시스템입니다. git은 우리가 코드를 개발하면서 하는 행동을 기록합니다. 예를 들어 코드 변경을 추적하고 코드 수정을 기록합니다. git을 사용하면 개발 프로세스에 큰 도움을 줍니다. 따라서 개발을 할 때는 Git과 같은 소스 제어 시스템은 필수처럼 여겨지고 있습니다.
Git은 분산 소스 관리 시스템입니다. 분산(distribute)이라는 의미는 소스에 대한 단일 장소를 갖는 대신 모든 개발자가 모든 변경 사항에 대한 전체 기록을 가지고 있다는 것을 의미합니다. 따라서 한 개발자의 시스템이 망가져도 금방 복구가 가능합니다. 반면 분산 시스템의 반대는 중앙 집중식 시스템입니다. 예로 Team Foundation Version Control은 중앙 집중식 버전 제어 시스템입니다.
Git은 Linus Tovalds에 의해 만들어졌습니다. 그 자체가 오픈 소스이며 완전히 무료입니다.
왜 Git을 사용해야 하나? 깃의 장점
Git을 소스 관리 시스템으로 사용하면 몇 가지 장점이 있습니다.
1. 빠르다
우선 빠르고 확장 가능합니다. 성능 테스트에 따르면 다른 소스 관리 시스템에 비해 훨씬 빠릅니다. 분산되어 있기 때문에 로컬 히스토리로 작업하는 경우가 많습니다. 따라서 원격 서버로 작업하는 것보다 훨씬 빠릅니다.
2. 연결 없이 가능
Git은 분산 소스 관리 시스템이므로 연결이 끊긴 상태에서도 동작합니다. 기본적으로 분산형이란 모든 개발자가 전체 저장소의 전체 로컬 복사본을 가지고 있음을 의미합니다.
3. 사용하기 쉽다
git은 매우 강력한 툴이지만 사용하기 쉽습니다. git의 몇 가지 단계를 익히고 기본 명령어만 익히면 누구나 쉽게 git을 사용할 수 있습니다.
4. 브랜치(branch)
브랜치(branch, 분기)를 사용하는 것은 git의 중요한 장점입니다. 사실 git의 일반적인 워크플로는 branch를 기반으로 합니다. 예를 들어 코드 개발은 일반적으로 기능 브랜치(feature branch)에서 하며, 개발이 완료되어 품질이 보증되었을 때 메인 브랜치로 다시 머지(merge, 병합)합니다.
5. 풀 리퀘스트(Pull request)
풀 리퀘스트의 개념은 git의 확장 기능입니다. 풀 리퀘스트는 일반적으로 GitHub와 같은 사이트에서 설정한 git 기능 위에 추가됩니다. 풀 리퀘스트는 코드 협업을 가능하게 합니다. 풀 리퀘스트를 사용하여 개발자는 코드 리뷰어에게 리뷰를 요청합니다. 코드를 확인한 리뷰어가 문제없다고 승인하면 코드의 변경사항이 다른 브랜치에 병합할 수 있습니다. 이러한 과정을 통해 코드의 토론과 검토를 할 수 있으므로 코드의 품질을 향상합니다.
git의 단점?
git이 모두 완벽하지는 않습니다. 만약 전통적인 소스 관리 시스템으로 작업했다면 생각을 조금 바꿔야 합니다. 또한 git을 처음 접하는 사람은 배우는 과정이 조금 헷갈린다고 불평하기도 합니다. git은 commandline에서 사용할 때 가장 강력합니다. gui에 익숙한 개발자에게는 항상 쉬운 일이 아닐 수 있습니다. 마지막으로 대용량 바이너리 파일의 관리가 약간 어려움을 겪는 영역 중 하나입니다.
깃허브(GitHub)란? 깃이랑 똑같은 거 아냐?
깃허브와 깃은 다른 개념입니다. GitHub는 Git의 호스팅 사이트입니다. Git 저장소(리포지토리)에 대한 호스팅 서비스를 제공하는 사이트 입니다. 개인 프로젝트를 위해 많은 개발자가 사용하고 있으며 소규모 및 대규모 프로젝트를 위해 전 세계의 회사에서 사용하고 있습니다. 참고로 github는 마이크로소프트가 인수했습니다.
GitHub는 Git위에서 실행되고 많은 기능을 추가할 수 있습니다. 소스 관리가 기본이지만 이슈 관리, 팀과 협업, 위키 등 많은 것이 가능합니다. 또한 풀 리퀘스트 생성 혹은 merge와 같은 일부 소스 기반 작업을 GItHub 인터페이스에서도 직접 수행할 수 있습니다. 하지만 일부는 여전히 로컬 도구를 사용해야 합니다.
GitHub는 무료이지만 유료 옵션을 제공하고 있습니다. 무료 요금제도 이제는 공개 및 비공개 리포지토리를 모두 생성할 수 있습니다.
여기까지 수고하셨습니다. git을 막 배우시는 분들은 차근차근 용어에 익숙해져 보세요. 다음 포스트는 git 환경설정을 해보도록 하겠습니다.
'프로그래밍 > Git' 카테고리의 다른 글
git branch 이해하기 (0) | 2022.09.10 |
---|---|
깃 작업 흐름, github clone부터 push까지 따라하기 (0) | 2022.09.07 |
github 리포지토리 이해하기 (0) | 2022.09.04 |
github ssh연결 설정 (0) | 2022.09.01 |
git 설치 및 환경설정 (0) | 2022.08.30 |
댓글