깃과 깃허브

developsy·2022년 5월 12일
0

깃과 깃허브는 버전제어 및 시간에 따라 발생하는 코드의 변경 사항을 추적하기 위해 사용한다. 코드의 사본을 만들지 않고, 이전 진행사항을 잃지 않으면서 각 단계의 코드를 저장하는 것이다.

Git

웹 개발 프로젝트의 다양한 버전의 코드들을 리포지토리에서 관리할 수 있도록 하는 로컬 도구이다.

Github

깃 리포지토리에 클라우드 호스팅을 제공한다. 즉 로컬도구인 깃에서 만든 프로젝트들을 클라우드로 보내는 역할을 한다. 이는 가장 큰 개발 플랫폼으로, 프로젝트의 협업에 필수적으로 쓰인다.

Git 기초 개념

출처 - 100일 코딩 챌린지 - 2022 Web Development 부트캠프

깃 활용 프로젝트에는 두 가지 영역이 있다.

워킹 디렉토리

현 프로젝트 폴더로 현재 작업 진행 중인 모든 폴더와 파일을 의미한다. 내가 현재 사용하는 코드 버전 및 변경 사항을 적용하는 영역이다.

활성 트래킹 파트 -> 강의에서 나오긴 했는데 검색해도 안나온다. 뭔지 모르겠다. 그냥 레퍼지토리로 이해하면 될 듯하다.

이곳에서 깃은 다른 코드의 스냅샷(코드 또는 시스템의 특정 시간대의 상태)을 저장하고 변경 사항을 추적할 수 있다.

코드 스냅샷과 변경 사항들은 레퍼지토리라는 곳에 존재한다. 이 안에는 모든 추적된 파일과 폴더가 존재하고, 이들 모두는 깃의 관리를 받는다. 특정 파일을 레퍼지토리에 추가하면 깃에게 파일 변경사항을 추적하라는 의도를 알려서, 내가 저장하고 싶은 새로운 코드 버전을 생성하는 경우 깃이 해당 파일의 사본을 여러 번 반복하여 저장하지 않아도 된다.

깃은 파일의 첫 번째 버전만을 저장하고 변경사항을 추적하기만 한다. 그래서 현재 상태와 최신 상태를 비교하여 변경된 부분을 확인하고 이를 최신 코드 스냅샷에서 작업시에 반영한다.

여기서 깃이 추적된 파일과 폴더를 관리하는 법은 커밋과 브랜치라는 개념에 기반을 둔 것이다.

  • 커밋은 하나의 코드 스냅샷을, 브랜치는 커밋이 저장된 곳을 의미한다.

만약 내가 워킹 디렉토리에서 작업한 후 이미지를 추가한 뒤, 커밋 메시지로 ‘added image’라고 주석을 저장하면 다른 개발자들이 이 코드 스냅샷에서 변경한 사항들을 인지할 수 있다.

즉 내가 어떤 것을 변경하고, 버그를 고치고, 새 기능을 추가할 때마다 이러한 커밋 메시지 주석이 담긴 새로운 커밋과 새로운 코드 스냅샷을 생성하는 것이다.

이 커밋들은 레퍼지토리에 저장되지 않고 main 또는 master브랜치에 저장된다. 이 브랜치는 메인 프로젝트를 저장하는 핵심 위치이다.

그래서 내가 웹사이트에서 작업할 경우 배포된 웹사이트의 최신 상태정보는 master브랜치에 있는 최신 커밋 또는 최신 스냅샷이라고 볼 수 있다.

만약 master브랜치에서 order button을 추가했고 feature라는 브랜치를 새로 생성했다면 이 브랜치에 업데이트된 코드 스냅샷을 넣을 수 있다. 또한 feature브랜치를 다시 master브랜치로 옮길 수도 있다.

-> 뭔가 내용이 너무 개판이고 읽기 싫게 써졌는데 지금 너무 잠이와서 나중에 고쳐야겠다.

profile
공부 정리용 블로그

0개의 댓글