본문 바로가기

Git & Github

Git Repository Fork

 

Git Repository에서 Fork(포크)는 다른 사용자의 리포지토리를 복사하여 자신의 GitHub 계정에 별도의 복제본을 생성하는 것을 말합니다. 포크는 원본 리포지토리와는 독립적으로 존재하며, 오픈소스 프로젝트에 기여하거나 개인 프로젝트에 활용하고자 할 때 유용하게 사용됩니다.

포크의 특징과 활용 방식은 다음과 같습니다.

1. 포크의 목적

포크는 주로 다음과 같은 목적을 위해 사용됩니다:

  • 오픈소스 기여: 오픈소스 프로젝트에 기여할 때 직접 원본 리포지토리에 변경사항을 추가할 수 없기 때문에, 자신의 계정으로 포크한 후 변경 작업을 수행하고, 기여를 위해 Pull Request를 제출할 수 있습니다.
  • 개인 수정 및 실험: 포크한 리포지토리는 원본과 독립적으로 수정할 수 있으므로, 코드를 자유롭게 변경하여 실험하거나 개인화할 수 있습니다. 원본 리포지토리에 영향을 주지 않기 때문에 안전하게 테스트할 수 있습니다.
  • 자신만의 프로젝트로 확장: 원본 리포지토리를 기반으로 새로운 기능을 추가하거나 다른 목적으로 확장하고자 할 때도 포크를 사용합니다.

2. 포크 후 작업 과정

포크한 리포지토리에서 작업하는 과정은 다음과 같습니다:

  1. Fork: GitHub에서 포크 버튼을 클릭하여 원하는 리포지토리를 자신의 계정으로 복제합니다. 이렇게 하면 해당 리포지토리가 자신의 계정 하에 복사됩니다.
  2. Clone: 포크한 리포지토리를 로컬 환경으로 클론하여, 컴퓨터에서 코드를 수정하고 테스트할 수 있도록 설정합니다.
  3. 수정 및 커밋: 로컬에서 작업하면서 코드 변경 사항을 커밋합니다. 필요에 따라 브랜치를 새로 만들어 작업하는 것도 일반적입니다.
  4. Push: 작업이 완료되면 포크한 리포지토리로 변경 사항을 푸시합니다.
  5. Pull Request 제출: 원본 리포지토리에 기여하고자 할 때는 자신의 포크한 리포지토리에서 Pull Request를 생성하여, 변경 사항을 원본에 반영할 수 있도록 요청합니다.

3. 업스트림(upstream)과 동기화

포크한 리포지토리는 원본 리포지토리와 독립적으로 존재하므로, 원본에서 변경사항이 발생할 때 이를 반영하기 위해 업스트림 리포지토리와 동기화하는 것이 중요합니다. 동기화 과정은 다음과 같습니다:

  • 로컬 리포지토리에서 원본 리포지토리를 업스트림으로 추가합니다.
  • 업스트림에서 최신 변경사항을 가져오고, 자신의 포크에 병합하여 최신 상태를 유지합니다.

4. Fork와 Clone의 차이점

  • Fork는 GitHub 상에서 원본 리포지토리를 독립적으로 복사하여 자신의 리포지토리를 생성하는 것.
  • Clone은 로컬 환경에 리포지토리의 복제본을 다운로드하여 작업할 수 있도록 설정하는 것.

 

 

실습을 위해 Azure Search Openai Demo 리포지토리를 fork 해봅니다.

https://github.com/Azure-Samples/azure-search-openai-demo

 

GitHub - Azure-Samples/azure-search-openai-demo: A sample app for the Retrieval-Augmented Generation pattern running in Azure, u

A sample app for the Retrieval-Augmented Generation pattern running in Azure, using Azure AI Search for retrieval and Azure OpenAI large language models to power ChatGPT-style and Q&A experien...

github.com

 

위의 링크로 Azure Search Openai Demo 리포지토리에 가보면 오른쪽에 Fork버튼이 있고 기존에 Fork된 횟수가 표시됩니다. 

펼치기 버튼을 클릭하고 Create a New fork를 클릭합니다.

 

Repository name을 입력하고 Copy the main branch only를 선택하고 "Create fork"를 클릭합니다.

 

내 Github로 돌아와 왼쪽 상단의 Github아이콘을 클릭해 보면 내 리포지토리에 fork된 리포지토리가 보입니다. 

 

Fork된 리포지토리에 들어가보면 원본 리포지토리가 표시됩니다. 

 

'Git & Github' 카테고리의 다른 글

Git 스테이징  (0) 2024.11.11
Git Init  (0) 2024.11.11
Git Repository Clone  (0) 2024.11.11
Github repository 만들기  (1) 2024.11.10