Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

행복한 개구리

GitHub Guide - Fork a repo(Web browser) 본문

GitHub/Guide

GitHub Guide - Fork a repo(Web browser)

HappyFrog 2022. 5. 19. 19:34

레포지토리 나누기

fork(갈래, 분기점)은 레포지토리의 복제본입니다. 레포지토리의 갈래를 내는 것은 당신이 원본에 영향을 주지 않고 자유롭게 내용에 변화를 줄 수 있는 경험을 선사합니다.


** Windows 기준입니다.

 

 

 

1. GitHub CLI


 

 

포크(fork, 갈래)에 대하여


분기점은 대부분 당신이 쓰기 권한이 없는 누군가의 프로젝트에 변화를 제안하거나 누군가의 프로젝트를 당신의 아이디어의 시작점으로 사용할 때 사용됩니다. 당신은 레포지토리를 나누어 레포지토리의 복제본을 만들고 기존의 올라가있는 레포지토리에 영향이 가지 않게 변화를 줄 수 있습니다. 더 많은 정보를 원하신다면 "Working with forks"를 살펴보세요.

 

 

누군가의 프로젝트에 변화를 제안하기

예를 들면, 당신은 버그 픽스와 관련된 내용을 제안하기 위해 포크를 사용할 수 있습니다. 찾아낸 버그 이슈를 기록하는 대신 당신은 다음과 같은 것들을 할 수 있습니다:

  • 레포지토리 갈래 만들기.
  • 수정본 만들기.
  • 프로젝트 소유자에게 pull 요청 제출하기.

 

 

다른 이의 프로젝트를 당신 아이디어의 시작점으로 사용해보세요.

오픈 소스 소프트웨어는 코드를 공유한다는 아이디어에 기반을 두고있으며, 우리는 더 낫고 신뢰할 수 있는 소프트웨어를 만들 수 있습니다. 더 많은 정보를 알고싶다면 "About the Open Source Initiative"를 살펴보세요.

 

GitHub.com에서 귀사의 개발업무에 오픈 소스 원칙을 적용하기 위해서 더 많은 정보가 필요하다면 GitHub의 백지 "An introduction to innersource"를 살펴보세요.

 

누군가의 프로젝트로부터 포크해서 당신의 공개 레포지토리를 만들 때, 당신의 프로젝트를 다른이들과 어떤식으로 공유하고 싶은 지를 결정해주는 라이센스 파일을 포함해야 합니다. 더 많은 정보를 알고싶다면, choosealicense.com에서 "Choose an open source license"를 확인하세요.

 

오픈 소스, 특히 오픈 소스 프로젝트를 어떻게 생성하고 성장시키는 지에 대해 더 자세히 알고 싶다면, 우리가 만든 Open Source Guides가 당신의 오픈 소스 프로젝트 유지, 생성을 위한 모범사례를 추천하여 당신이 건강한 오픈 소스 커뮤니티를 조성하도록 도와줄 것입니다. 당신은 또한 오픈 소스 커뮤니티에 대한 GitHub Learning Lab 강의를 무료로 수강할 수 있습니다.

 

 

사전 조건


만약 당신이 아직 Git을 설정하지 않았다면, Git 설정를 해야합니다. 그리고 Git에서 GitHub.com을 인증하는 것을 잊지마세요.

 

 

 

레포지토리 포크하기


당신은 업스트림 또는 기존 레포지토리에 변경 사항을 제안하기 위해서 프로젝트를 포크할 수 있습니다. 이 경우, 업스트림 레포지토리와 당신의 포크를 정기적으로 동기화 하는 좋은 연습이 됩니다. 이 것을 함으로써, 당신은 명령줄에서 Git을 사용할 필요가 있을겁니다. 당신은 방금 포크한 octocat/Spoon-Knife 레포지토리와 같은 레포지토리를 사용하여 업스트림 레포지토리를 세팅하는 것을 연습할 수 있습니다.

 

GitHub.com에서 octocat/Spoon-Knife레포지토리로 이동합니다.

 

페이지의 우측 상단에 있는 Fork를 클릭합니다.

 

②-1

Fork를 누르면 위와 같은 창으로 넘어갑니다.

 

 

 

포크된 레포지토리 복제하기


지금 당신은 Spoon-Knife 포크된 레포지토리를 가지고 있지만 당신은 해당 레포지토리의 파일들은 당신의 로컬 컴퓨터에 있진 않습니다.

 

GitHub.com에서 Spoon-Knife 레포지토리로 향합니다.

 

파일목록 위쪽에 있는 Code를 클릭합니다.

 

레포지토리를 위한 URL을 복사합니다.

  • 레포지토리를 HTTPS를 사용하여 복제하려면 HTTPS를 클릭하고 아래에 있는 복사 아이콘을 클릭하세요.

 

  • 조직의 SSH 인증 기관에서 발급한 인증서를 포함하여 SSH 키를 사용하여 레포지토리를 복제하려면 SSH를 클릭하고 복사 아이콘을 클릭합니다.

 

  • GitHub CLI를 사용하여 레포지토리를 복제하려면 GitHub CLI를 클릭하고 복사 아이콘을 클릭합니다.

 

Git Bash를 엽니다.

 

현재 작업중인 디렉토리를 복제된 디렉토리를 원하는 위치로 변경하세요.

 

  git clone  을 입력합니다. 그리고 방금 전에 복사했던 URL을 붙여넣습니다. 그럼 당신의  YOUR-USERNAME 대신에 당신의 GitHub 유저 이름이 보일 것이며 다음과 같이 보일 것입니다.

$ git clone https://github.com/YOUR-USERNAME/Spoon-Knife

 

Enter를 누르세요.당신의 로컬 클론이 생성될 것입니다.

$ git clone https://github.com/YOUR-USERNAME/Spoon-Knife
> Cloning into `Spoon-Knife`...
> remote: Counting objects: 10, done.
> remote: Compressing objects: 100% (8/8), done.
> remove: Total 10 (delta 1), reused 10 (delta 1)
> Unpacking objects: 100% (10/10), done.

 

 

 

기존 레포지토리와 포크 동기화를 위해 Git 구성하기


당신이 기존 레포지토리에 변경 사항을 제안하기 위해서 포크를 했을 때, 당신의 로컬 포크의 기존 레포지토리 또는 업스트림 레포지토리로부터 변경 사항을 가져오도록 Git을 구성할 수 있습니다.

 

GitHub.com에서 octocat/Spoon-Knife 레포지토리로 이동합니다.

 

 파일목록 위쪽에 있는 Code를 클릭합니다.

 

 레포지토리를 위한 URL을 복사합니다.

  • 레포지토리를 HTTPS를 사용하여 복제하려면 HTTPS를 클릭하고 아래에 있는 복사 아이콘을 클릭하세요.

 

  • 조직의 SSH 인증 기관에서 발급한 인증서를 포함하여 SSH 키를 사용하여 레포지토리를 복제하려면 SSH를 클릭하고 복사 아이콘을 클릭합니다.

 

  • GitHub CLI를 사용하여 레포지토리를 복제하려면 GitHub CLI를 클릭하고 복사 아이콘을 클릭합니다.

 

Git Bash를 엽니다.

 

현재 작업중인 디렉토리를 복제된 디렉토리를 원하는 위치로 변경하세요.

  • 기본 디렉토리로 가기 위해서  cd 만 입력하세요.
  • 현재 디렉토리의 파일과 폴더 목록에서  ls 를 입력하세요.
  • 나열된 디렉토리들 중 하나에 들어가기 위해  cd your_listed_directory 를 입력하세요.
  • 디렉토리의 상위경로로 한 번 이동하려면  cd... 를 입력하세요.

 

  git remote -v 를 입력하고 Enter를 누르세요. 당신은 현재 구성된 당신의 포크를 위해 원격 레포지토리를 보게될 것입니다.

$ git remote -v
> origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
> origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)

 

  git remote add upstream 을 입력하고, ③번에서 복사한 URL을 붙여넣은 다음 Enter를 누르세요. 그럼 다음과 같이 보일것입니다:

$ git remote add upstream https://github.com/YOUR_USERNAME/Spoon-Knife.git

 

당신이 당신의 포크를 위해서 지정한 새로운 업스트림 레포지토리를 식별하기 위해서  git remote -v 를 다시 입력해주세요. 당신의 포크를 위한 URL은  origin , 기존 레포지토리를 위한 URL은  upstream 으로 보여야 합니다.

$ git remote -v
> origin    https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
> origin    https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
> upstream  https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)
> upstream  https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)

 

이제 당신은 몇가지 Git 명령들로 업스트림 레포지토리와 당신의 포크 동기화를 유지할 수 있습니다. 더 많은 정보를 알고 싶다면 "Syncing a fork"를 살펴보세요.

 

포크 편집하기

당신은 포크를 얼마든지 변경할 수 있습니다. 다음을 포함하여:

  • 브랜치 생성: 브랜치는 메인프로젝트에 위험부담없이 당신이 새로운 특성을 빌드하거나 아이디어를 실험할 수 있게 해줍니다.
  • pull 요청 열기: 만약 당신이 원래 레포지토리에 기여하고 싶다면, 당신은 원작자에게 pull 요청을 보냄으로써 당신의 포크를 그들의 레포지토리에 가져가라고 요청을 보낼 수 있습니다.

 

 

 

포크할 다른 레포지토리 찾기


프로젝트에 기여하기 위해 레포지토리를 포크하세요. 당신은 당신의 개인 계정이나 당신이 레포지토리 생성 권한을 가진 어떤 기관에서 레포지토리를 포크할 수 있습니다. 더 많은 정보를 원하신다면 "Roles in an organization"을 참고하세요.

 

만약 당신이 비공개 레포지토리의 접근 권한을 가지고 소유자가 포크하는 것을 허락했다면, 당신은 레포지토리를 당신의 개인 계정 또는 당신이 레포지토리 생성 권한을 가지고 속한 GitHub Team에서의 기관으로 포크할 수 있습니다. 당신은 비공개 레포지토리를 무료 GitHub를 이용하는 기관에는 포크할 수 없습니다. 더 많은 정보를 알고싶다면, "GitHub's products"를 살펴보세요.

 

당신은 프로젝트를 찾고 오픈 소스 레포지토리에 기여하는 것을 시작하기 위해 Explore를 탐색할 수 있습니다. 더 많은 정보를 알고싶다면, "Finding ways to contribute to open source on GitHub"를 참고하세요.

 

 

 

다음 단계


당신은 레포지토리를 포크하고, 포크를 복제하는 것을 연습했으며, 그리고 업스트림 레포지토리를 구성했습니다.

  • 포크를 복제하는 것과 당신의 컴퓨터에서 변경된 포크된 레포지토리를 동기화 하는 것에 대해 자세히 알고싶다면 "Set up Git"을 참고하세요.
  • 당신은 또한 새로운 레포지토리 생성하고 당신의 모든 프로젝트를 올려 GitHub에 코드를 공유할 수 있습니다. 당신의 프로젝트를 위해 레포지토리를 생성하는 것은 당신이 GitHub에 코드를 저장할 수 있게 해줍니다. 이것은 당신의 작업에 백업을 제공하며 당신은 다른 개발자와 공유하는 것을 선택할 수 있습니다. 더 많은 정보를 알고 싶다면 "Create a repository"를 참고하세요.
  • GitHub에 있는 각 레포지토리는 개인이나 기관에 의해 소유됩니다. 당신은 GitHub에서 그들과 접촉하고 팔로우함으로써 사람, 레포지토리, 기관들과 상호작용 할 수 있습니다. 더 많은 정보를 원한다면 "Be social"을 참고하세요.
  • GitHub는 당신이 전 세계 사람들에게 도움을 청하거나 얘기를 나눌 수 있는 훌륭한 지원 커뮤니티를 가지고 있습니다. GitHub Support Community에서 대화에 참여하세요.
 

'GitHub > Guide' 카테고리의 다른 글

GitHub Guide - Contributing to projects  (0) 2022.05.23
GitHub guide - GitHub flow  (0) 2022.05.20
GitHub Guide - Fork a repo(GitHub Desktop)  (0) 2022.05.19
GitHub Guide - Fork a repo(GitHub CLI)  (0) 2022.05.17
GitHub Guide - Create a repo  (0) 2022.05.11