Programming/Git | Github

Git/GitHub: 로컬 저장소(Local Repository)와 원격 저장소(Remote Repository)

vita12321 2023. 8. 26. 17:03
728x90
반응형

이번 글에서는 Git 로컬 저장소와 원격 저장소에 대해 자세히 알아보겠습니다. Git 소스 코드 관리 시스템으로, 로컬과 원격 저장소를 통해 프로젝트의 코드를 안전하게 보관하고 공유할 있습니다. 가지 요소를 이해하고 활용한다면, 프로젝트의 개발 협업을 매우 효과적으로 진행할 있습니다.


1. Git 주요 용어

 

  • 로컬 저장소(Local Repository):
    개인 컴퓨터에 위치한 파일 디렉토리입니다. 여기서 직접 코드 변경 작업을 하며, 변경 사항을 커밋합니다. 로컬 저장소는 개인이 직접 작업하는 공간으로, 이곳에서 버전 관리가 이루어집니다.

 

  • 원격 저장소(Remote Repository):
    네트워크 어딘가에 위치한 파일 디렉토리입니다. 여러 사람이 함께 접근하여 작업할 있으며, 주로 코드 공유와 협업에 사용됩니다. GitHub, Bitbucket 다양한 서비스에서 원격 저장소 기능을 제공합니다.

2. 로컬 원격 저장소 사용 예제

 

1) 새로운 로컬 저장소 초기화:

$ git init

현재 디렉터리를 git 관리하는 새로운 로컬 리포지터리로 초기화합니다.

 

 

2) 기존 원격 저장소 클론하여 로컬 저장소 생성:

$ git clone [원격저장소주소]

원격 리포지터리의 모든 정보(버전 기록 포함) 복사하여 PC(혹은 지정된 디렉터리) 동일한 리포지터리를 생성합니다.

 

 

3) 로컬에서 작업한 내용을 스테이징 영역에 추가:

$ git add .

현재 디렉터리의 모든 변경사항들(. 현재 디렉터리라는 의미) 스테이징 영역에 추가합니다.

 

 

4) 스테이징 영역의 변경사항들을 커밋:

$ git commit -m "변경 내용"

스테이징 영역에 있는 변경사항들을 하나의 커밋으로 저장하며, "변경 내용"이라는 메시지를 함께 저장합니다.

 

 

5) 커밋된 변경사항들을 원격저장소에 푸시:

$ git push origin master

로컬 저장소의 커밋된 변경사항들을 원격 저장소의 master 브랜치에 업데이트합니다.


3. 원격저장소 관련 용어

 

  • Fetch:
    원격저장소의 최신 정보를 가져오지만 자동 병합은 하지 않는 것입니다. 이는 로컬에서 작업 중인 내용과 충돌이 발생할 있기 때문에, 개발자가 직접 병합 시점을 선택할 있도록 하는 기능입니다.

 

  • Pull:
    Fetch 달리, 최신 정보를 가져오고 자동으로 병합도 합니다. 이는 원격 저장소의 최신 버전을 로컬에 적용하고 싶을 사용하는 명령어입니다.

 

  • Push:
    로컬에서 작성한 코드나 변경사항 등을 원격 저자장치에 업데이트하는 것입니다. 이는 로컬에서 완료된 작업을 원격 저장소에 공유하고 싶을 사용하는 명령어입니다.

4. 원격저장소 관련 용 사용 예제

 

1) 최신 원격 정보 가져오기(Fetch):

$ git fetch origin

origin이라는 이름의 원격 저장소에서 최신 정보를 가져옵니다. 그러나 단계에서는 자동으로 병학되지 않습니다.

 

 

2) 최신 정보 가져오고 병합하기(Pull):

$ git pull origin master

origin이라는 이름의 원격 저장소에서 master 브랜치의 최신 정보를 가져와서 자동으로 현재 브랜치와 병합합니다.

 

 

3) 로컬 변경사항 원격에 업데이트하기(Push):

$ git push origin master

현재 브랜치의 변경 사항들을 origin이라는 이름의 원검 저장소의 master 브랜치로 업데이트합니다.


5. Git 협업 주요 용

 

  • 포크(Fork):
    다른 사람이 만든 프로젝트(원본 프로젝트) 계정으로 동일하게 복제하는 것입니다. 포크한 프로젝트에서 발생한 변경 사항은 다시 기존 프로젝트(원본)로 반영 요청(Pull Request) 보낼 있습니다.

 

  • 풀 리퀘스트(Pull Request):
    브랜치의 변경 사항을 다른 브랜치에 병합하기 위해 요청하는 것입니다. 이는코드 리뷰 토론을 거친 병합이 이루어집니다. 일반적으로 포크한 레포지토리에서 원래 레포지토리로 변경 내용을 반영 요청할 사용합니다.

6. 협업 관련 용어 사용 예제

 

1) 원격 저장소 포크하기:

활용하려는 프로젝트를 선택한 인터페이스에서 'Fork' 버튼을 클릭하면, 해당 프로젝트가 자신의 계정으로 복제됩니다.

 

 

2) 포크한 저장소를 로컬에 클론 하기:

$ git clone  [자신의 계정에 있는 포크한 원격 저장소 주소]

명령어를 이용해 포크한 저장소를 로컬에 클론 합니다.

 

 

3) 변경 사항을 커밋하고 푸시하기:

$ git commit -m "변경 내용"

$ git push origin master

포크한 저장소에서 작업한 내용을 커밋한 원격 저장소에 푸시합니다.

 

 

4) 리퀘스트 생성:

푸시한 원본 레포지토리의 웹페이지에서 'Pull request' 버튼을 클릭하면, 리퀘스트를 생성할 있습니다.

 

 

글에서는 로컬 저장소와 원격 저장소, 그리고 이것들이 어떻게 협업에 사용되는지에 대해 알아보았습니다. 이것들을 이해하고 활용한 개념들은 Git 사용법의 핵심적인 부분이므로, 프로젝트 진행 도움이 것입니다

728x90
반응형