Git

Git 저장소 구조 이해 및 프로젝트 시작하기

신림쥐 2024. 5. 24. 17:38
728x90

 

     


    개요

    협업을 위한 Git 프로젝트를 처음 시작할 때, 자주 마주치는 용어들이 있습니다: remote, origin, upstream. 처음엔 다 비슷해 보이지만, 실제로는 각자 중요한 역할을 합니다. 이 글에서는 GitHub 프로젝트를 기반으로, 프로젝트를 시작하고 협업에 참여하기 위한 기본 흐름을 정리해보겠습니다.

     

     

    Git의 기본 개념: 로컬 저장소와 원격 저장소

    Git을 본격적으로 다루기 전에, 가장 기본이 되는 두 가지 개념부터 짚고 넘어가야 합니다.

     

    로컬 저장소 (Local Repository)

    로컬 저장소는 개발자의 컴퓨터 안에 위치한 개인 저장소입니다.. 즉, 인터넷이 없어도 내 PC에서 Git을 통해 자유롭게 버전 관리를 할 수 있습니다.

    • 프로젝트 디렉토리 안에 .git이라는 숨겨진 폴더가 생성되고,
    • 이 폴더에 변경 이력, 브랜치 정보, 설정 등 모든 Git 데이터가 저장됩니다.
    • 개발자는 이 저장소에서 코드를 수정하고 커밋하며 독립적으로 작업할 수 있습니다.

     

    원격 저장소 (Remote Repository)

    원격 저장소는 GitHub, GitLab, Bitbucket 같은 플랫폼에 위치한 저장소로, 인터넷을 통해 접근할 수 있습니다.

    • 보통 팀원들과 협업을 위한 중앙 서버 역할을 해요.
    • 각자의 로컬 저장소에서 작업한 내용을 push하여 업로드하고,
    • 다른 사람의 작업 결과를 pull하여 내려받을 수 있어요.

    원격 저장소와의 연결은 다음과 같은 이름들로 구분됩니다:

    origin 내가 클론해온 저장소. 보통 내 GitHub 계정의 저장소를 의미해요.
    upstream 원본 저장소. 다른 사람(혹은 조직)의 저장소를 말하며, 협업 시 자주 사용돼요.

     

    Fork

    다른사람의 Github repository(=original repository)를 나의 Github repository로 복제하는 작업입니다. 원본 저장소는 upstream, 내 계정의 저장소는 origin이 됩니다.

     

    1. 원본에 변경사항이 생기면 fetch, rebase를 통해 나의 저장소로 반영할 수 있음
    2. 원본에 변경사항을 적용 하고 싶으면 pull request를 하여 관리자의 승인을 진행하고 반영 함

     

    Clone

    특정 repository를 복사하고 새로운 repository를 만드는 작업

    1. 원본에 변경사항이 생겨도 나의 저장소로 반영할 수 없음
    2. Github 권한이 없다면 내 변경사항을 원본 저장소에 반영할 수 없음

     

     

    GitHub에 있는 저장소 복제하기

    1. GitHub에 있는 저장소를 내 계정에 복사해서 작업할 때 (보통 협업 시)

    GitHub에서 원본 저장소를 내 계정으로 복사합니다. → 웹 브라우저에서 Fork 버튼 클릭


    내 계정으로 복사된 저장소를 로컬 컴퓨터로 Clone 합니다. 예시 git clone https://github.com/내아이디/저장소이름.git

    git clone https://github.com/내아이디/복사된-저장소.git

     

    로컬에서 작업하고 Git으로 커밋, 푸시합니다.

    git add . 
    git commit -m "첫 커밋" 
    git push -u origin main

     

    2. 완전히 새로운 프로젝트를 내 로컬에서 시작할 때

    새 폴더를 만들고 Git 저장소를 got init 으로 초기화합니다.

    mkdir my-project 
    cd my-project 
    git init

     

    원격 저장소 목록을 조회합니다.  (GitHub에 저장소 만들어두었다 가정으로 진행)

    git remote -v
    git remote add origin https://github.com/내아이디/저장소.git

     

    로컬에서 작업하고 Git으로 커밋, 푸시합니다.

    git add . 
    git commit -m "첫 커밋" 
    git push -u origin main
    728x90