[웹개발 로드맵] 4. Git과 Github

남현우·2022년 6월 24일
0

웹개발 로드맵

목록 보기
4/10

Git

Git은 컴퓨터 내에서 모든 파일의 변경사항을 관리하고, 다수의 작업자에 의한 파일 작업을 관리해주는 분산 버전 관리 시스템이다.
매우 빠르고, 데이터 무결성을 보장한다는 장점이 있다.

여기서 변경사항이란 말 그대로 모든 파일이 언제, 누구에 의해, 어떻게 변경됐는지를 모두 의미하며 Git은 이를 다 기억하고 있다는 뜻이다.

또한 다수의 작업자에 의한 파일 작업을 관리해준다는 의미를 잘 살펴보자.
이는 Git의 한 파일에 대한 여러 버전을 관리하는 기능을 의미한다. 이를 브랜치라고 부른다.
따라서 팀에서 한 파일에 대해 여러 사람이 일을 할 때, 한 명의 작업이 끝난 후에야 다른 사람이 작업을 진행하는 불편함을 없애거나 서로 작업을 마치고 서로 짠 코드를 확인하며 파일을 합쳐야하는 불편함을 없애는 것이 가능하다.

다만, 기존의 버전 관리 시스템인 SVN과 달리 스테이징, 커밋, 푸시, 풀 등을 알아야 하고 브랜치도 활용하는 점이 많아서 복잡하고 진입장벽이 높다는 단점이 있다.

Git commands

Git은 터미널을 통해 작업을 진행할 수 있다.
하지만 UI 프로그램들이 나오면서 대부분의 기능들을 명령어를 외우거나 공부하는 과정 없이 간편하게 사용이 가능해졌는데, 그럼에도 많은 사람들이 처음에 터미널을 통해 학습하거나 터미널만 사용하는 이유로는 Git의 다양한 기능들에 대해 더 깊은 이해가 가능하기 때문이다.

아래에서 간단한 기본 명령어들을 확인해보겠다.

Git init

Git을 통해 로컬 저장소를 설정한다.
해당 디렉토리 하위에 git 디렉토리를 생성하고 git에 관련된 데이터들이 저장된다.

Git status

현재 브랜치와 커밋 상태, 작업 중인 파일의 상태를 확인한다.

Git add

변경된 파일의 변경사항을 스테이징한다, 이는 commit의 전단계를 의미한다.

Git commit

스테이징된 변경사항을 업데이트한다.
커밋이란 단어는 git을 공부한다면 꼭 들어볼 단어이다. add와는 달리 변경사항을 실제로 저장소에 저장한다고 생각하면 될 것 같다.

Git log

옵션의 조합을 통해 원하는 히스토리를 조회한다.

Git GUI program

Git GUI 프로그램들은 다양하게 나와있고 기초만 알아도 굉장히 유용하게 사용할 수 있다.
Github desktop, SourceTree, TortoiseGit, Git Extensions, GitKraken 등 수많은 프로그램들이 나와있고 대부분 무료로 이용 가능하다.
다만 Git의 기초는 이해해야 사용이 가능하므로 한 번의 사용은 추천한다.

Github

Git하면 떠올리는 대표적인 Git 저장소 플랫폼인 Github는 Git을 이용해 공동의 프로젝트를 진행할 수 있도록 돕는다. 영리적 서비스와 비영리적 서비스를 진행하며 교육프로그램, Copilot(코드 자동완성 인공지능 프로그램) 등의 개발도 이루어진다.

Github는 Git을 클라우드에서 제공한다.
이를 통해 여러 작업자가 한 프로젝트에 대해 진행한 작업을 클라우드 Git 저장소에 기록하면 Github는 그 기록들을 모아 여러 사람들에게 제공해 진행상황을 동기화하고 교환할 수 있도록 돕는다.

Github 외에도 이러한 플랫폼은 다양하지만 많은 메이져 기업에서 코드를 Github에 올리고, 다양한 라이브러리가 Github에서 예제를 제공하는 등 가장 유명한 Git 플랫폼으로 꼽힌다.
Bitbucket, GitLab 등의 플랫폼은 서비스 차별화와 전략을 통해 Github를 추격중이니 앞으로도 지켜보면 좋을 것 같다.

profile
개발 관련 지식을 기록하는 블로그입니다.

0개의 댓글