깃(Git) & 깃허브(Github)란?

임재영·2025년 5월 14일
post-thumbnail

🗃️ Git이란?


파일의 변경 이력을 추적하고, 효율적으로 관리할 수 있게 해주는 분산 버전 관리 시스템이다.

Git의 필요성

대부분의 사람들은 혹시 모를 상황에 대비해 파일을 미리 복사해 놓고 작업을 시작한다. 하지만, 작업이 진행되면서 버전이 늘수록 사람이 직접 관리해야 하는 파일도 많아지게 된다. 그러다 보면 번거롭기도 하고, 매번 복사하는 과정에서 실수나 누락을 할 가능성도 높아진다.

특히, 여러 사람이 같은 파일로 작업을 하거나 이전 상태로 다시 되돌려야 할 경우가 생긴다면 어디부터 손을 대야 할지 감을 잡기 힘들다.

진행 중인 프로젝트에서 수정한 코드가 동작하지 않거나, 여러 모종의 이유로 인해 코드를 이전 버전으로 롤백해야 하는 필요가 생긴다. 이때 Git을 사용하면 손쉽게 버전 관리를 할 수 있다.

  • 여기서 버전 관리란?

    내가 원하는 시점(버전)으로 이동할 수 있게 해주는 것.

  • 버전 관리를 사용하는 이유

    1. 파일이 변경되면 변경 이력을 저장할 수 있다.
    2. 이전 버전으로 돌아갈 수 있다.
    3. 어떤 변경 사항이 발생했는지 알아보기 쉽다.
    4. 협업하기에 좋다.
    5. 백업이 용이하다.

Git의 장점

깃(Git)은 인터넷이 연결이 되지 않은 곳에서도 개발을 진행할 수 있고, 분산 버전 관리이기 때문에 중앙 저장소가 삭제되어도 원상복구가 가능하다.
각각의 개발자들이 Branch를 사용하여 개발을 진행한 뒤, 본 프로그램에서 합치는 merge 방식을 통하여 병렬 개발이 가능하다.

또, 소스 코드가 어떤 부분이 어떻게 바꾸었는지 확인할 수 있다.

깃(Git)을 사용할 때 개발자의 현실적인 장점은 포토폴리오 관리에 용이하여, 자신이 작업한 프로젝트가 나열되어 있고 얼마나 주기적으로 프로젝트를 관리하고 있는 한눈에 확인이 가능하다.

🔗 Github란?


Git을 기반으로 코드 저장소를 호스팅하고, 협업 및 프로젝트 관리를 도와주는 클라우드 서비스.
= Git으로 관리하는 프로젝트를 올려둘 수 있는 사이트.

Git으로 버전을 관리하는 폴더에 대해서 Github를 통해 여러 사람들이 공유하고 접근할 수 있다. 반대로, 다른 사람의 작업물을 받아와서 작업할 수도 있다. Github에서 Code Review 등을 통해 협업이 가능하고, 수많은 오픈 소스 프로젝트들이 Github로부터 호스팅되고 있어서 누구든 자유롭게 기여할 수 있다.

여러 명이서 프로젝트를 작업할 시, 기존에는 변경 내용이 있을 때마다 각각의 파일들을 메일, SNS등으로 보내고 수정사항을 얘기해줘야 한다.
이전 버전으로 돌아가고 싶어도 일일이 변경 사항을 저장해놓지 않는 한 불가능하다.

Github 사용 시

  1. 메인 프로젝트를 자신의 Github에 가져온 다음,
  2. 로컬 저장소로 받아와서,
  3. 원하는 코드로 수정한 다음
  4. 자신의 Github에 업데이트하고
  5. 수정한 내용을 메인 프로젝트에 추가하고
  6. 메인 프로젝트 관리자가 변경 사항을 한 눈에 파악하고 병합을 승인 여부를 명령어 단 몇 줄로 가능하다.

Git Repository

Git Repository는 저장소. 즉, 말 그대로 폴더를 저장해두는 곳이다.

Git repository는 다음과 같이 두 가지 종류로 나뉜다.

  • Local repository : 나의 PC에 저장되는 개인 전용 저장소
  • Remote repository : 원격 저장소 전용 서버에 저장되는 저장소

작업할 때는 Local repository에서 할 수 있고, 내가 작업한 코드를 공유하려면 Remote repository에 업로드하여 여러 사람이 함께 공유할 수 있다.

Git 기본 동작 및 용어

1. Fork

  • Remote Repository에 소스 코드가 올라와 있는데, 기여하고 싶은 오픈 프로젝트의 원격 저장소를 내 원격 저장소로 복사해오는 작업을 Fork 라고 한다.

2. Clone

  • Fork를 하여 나의 Remote Repository에 코드를 옮겨온 상태인 것을 확인할 수 있다. 이때 이 코드를 수정하기 위해서는 내 컴퓨터로 가져오는 작업이 필요한데, 이때 그 과정을 Clone 이라고 한다.

3. Commit, Push

  • 현재 내 컴퓨터에 코드를 가져와 자유롭게 코드를 작성하여 이 파일을 다시 공유하기 위해 Remote Repository에 올려주는 작업이 필요하다. 이때 변경된 내용을 Commit을 통해 저장해 준 뒤, Push로 파일을 올려준다.

    이렇게 Push를 완료하고 나면, Github에는 Pull request라는 기능으로 내가 제안한 코드 변경 사항에 대해 메인 프로젝트에 대한 반영 여부를 요청할 수 있다.

4. Pull

  • Push 작업을 진행했을 때와 반대로 Remote Repository에서 변경 사항이 있을 때, Local Repository로 가져오는 작업을 pull이라고 한다.



📍 [정리]

Git :
로컬에서 파일의 변경 내역을 관리한다.

Github :
클라우드 방식으로 Git에서 관리한 코드를 온라인에 업로드하고 다른 사람들과 협업할 수 있도록 도와준다.



[참고]
https://velog.io/@tlsl13/Git-Github
https://yeongjaekong.tistory.com/4
https://namu.wiki/w/%EB%B2%84%EC%A0%84%20%EA%B4%80%EB%A6%AC%20%EC%8B%9C%EC%8A%A4%ED%85%9C

0개의 댓글