조종 다음은 개발
article thumbnail

Git 이 뭐야?? 🧐

Git 은 소스 코드를 관리하기 위한 분산 버전 제어 시스템이다. 버전 제어 시스템은 사용자가 파일을 수정할 때 변경 사항을 기록하고 저장하므로 언제든 이전 버전의 작업을 복원할 수 있다.

개발자들은 기능을 추가하거나 수정하는 작업이 많기 때문에 Git을 활용하여 편리하게 버전을 관리한다. Git을 사용하면 팀 프로젝트로 여러 팀원들이 동시에 작업을 하여도 누가, 언제, 무엇을 했는지 확인할 수 있기 때문에 문제가 발생하여도 쉽게 파악하여 해결할 수 있다.

Git의 버전 관리

이에 대한 내용은 아래 링크에서 그림에 빗대어 너무 잘 설명되어 있어서 참고하면 좋을 것 같다.

[GIT] ⚡️ git 개념 & 원리 (그림으로 알기 쉽게 비유 😃)

Git 기본 동작

출처 :  https://velog.io/@lillynextdoor/Git의-기본-동작-원리

Working Directory

로컬(Local), Working Copy 라고도 불린다.

현재 프로젝트 폴더에 존재하는 파일들 그 자체를 의미한다.

Staging Area

인덱스(Index), Cache 라고도 불린다.

커밋(Commit) 하기 전, git add 명령어로 추가한 파일들이 임시로 저장되는 공간이다.

Stating Area 에 추가된 파일들의 변경 이력이 추적이 된다.

커밋행 버스라고 생각하면 편하다. git commit을 할 파일들이 탑승(임시 저장)하는 공간이다.

Local Repository

본인의 컴퓨터에 저장된 로컬 버전의 프로젝트 저장소.

커밋된 변경 이력들이 저장되는 로컬 저장소이다. 변경 사항들은 브랜치(Branch)와 같은 구조로 저장된다.

Remote Repository

로컬 repository와는 반대로 내 컴퓨터가 아닌 (일반적으로 원격 서버) 버전의 프로젝트 저장소.

로컬 저장소의 변경 이력들을 공유하기 위한 원격 저장소로 Github 등의 서비스를 통한 온라인상의 저장소를 말한다. git push를 통해 로컬 저장소 내용을 원격 저장소로 보낼 수 있으며, git pull로 원격 저장소에 있는 내용을 로컬 저장소로 가져올 수도 있다. Remote Repository를 통해 다수의 사용자와 함께 작업할 수 있는 협업 환경을 제공한다.

단순히 Repository 라고 말하고 사용하는 경우가 많은데 Repository 가 Local Repsoitory와 Remote Repository로 나뉜다.

Fork vs Clone

Fork 란?

fork 는 다른 사람의 Github Repository에서 내가 어떠한 기능을 수정하거나 추가하고 싶을 때 해당 Repository를 내 Gitgub Respository에 그대로 복제하는 기능이다. fork 한 저장소는 원본(원래 Repository 주인)과 연결되어 있다. 여기서 연결되어 있다는 의미는 원래 Repository에 변화가 생기면(원래 주인이 새롭게 commit, push 한 경우) 이는 그대로 fork 된 내 Repository로 반영할 수 있다(이때 fetch, pull의 과정이 필요함).

fork 한 Repository 를 변경하고 원본 레포지토리에 적용하고 싶으면 원본 저장소에 pull request(PR)를 보내야 한다. pull request 가 original repository의 관리자로부터 승인되었으면 내가 수정한 코드가 commit, merge 되어 원본 레포지토리에 반영된다. pull request 하지 전까지는 내 github에 있는 fork 한 repository 에만 변경사항이 적용된다.

Clone 이란?

  • clone 이란 원격 Repository 와 나의 로컬 PC를 연결해 데이터를 가져오는 기능이다.
  • 내가 생성한 원격 저장소를 내 컴퓨터와 연결해서 데이터를 복사하는 작업
  • 원격 저장소를 내 컴퓨터와 연결해서 데이터를 복사하는 작업

앞서 설명한 Fork 는 원본 Repository를 내 Repository에 복재하는 기능이고 clone 은 이러한 Repository를 내 로컬 PC와 연결하는 기능이다.

clone 한 프로젝트는 원본 repository 의 로그를 볼 수 없다. 권한이 없는 경우 내 로컬에서의 변경 사항을 원본 repository로 push 또한 할 수 없다.

🌐 Reference

Git이란 | Git tutorial | Nulab

[GIT] ⚡️ git 개념 & 원리 (그림으로 알기쉽게 비유 😃)

Git의 기본 동작 원리

Git add와 commit 내부동작 확인해보기

profile

조종 다음은 개발

@타칸

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!