GitHub에서 자신의 저장소를 어떻게 포크합니까?
GitHub에 공용 저장소가 있습니다.복제/복사하여 이 리포지토리를 기반으로 새 프로젝트를 수행하고 싶지만 현재 상태에 영향을 주고 싶지 않습니다.GitHub UI를 사용하여 포크를 시도했지만 아무 것도 하지 않았습니다.
저는 당신이 당신의 책임을 질 수 있다고 생각하지 않습니다.
복제하여 새 레포에 푸시하는 것이 좋지만 다음 작업을 수행해야 합니다.
git clone https://github.com/userName/Repo New_Repo
cd New_Repo
git remote set-url origin https://github.com/userName/New_Repo
git remote add upstream https://github.com/userName/Repo
git push origin master
git push --all
( 참조).
"Fork your own project on GitHub"에 설명된 모든 프로세스를 참조하십시오.
6년 후(2016년), 이제 다른 소스에서 레포를 가져올 수 있는 GitHub 수입업체가 있습니다.깃허브를 포함해서요.
GitHub 임포터를 사용하여 리포지토리 가져오기를 참조하십시오.
그러면 새 리포지토리를 만들고 GitHub URL을 사용하여 이전 리포지토리의 전체 내역을 새 리포지토리로 가져올 수 있습니다.
다시 말씀드리지만, 실제 포크가 아닌 복사본을 얻을 수 있습니다. 새 레포에서 이전 레포로 끌어오기 요청을 할 수 없습니다.
다시 (bis), 의 코멘트에 명시된 것처럼 이것은 TRUE FORK가 아닙니다.
만약 제가 다른 사람들이 포크를 사용하고 PR을 할 수 있는 오픈 소스 프로젝트의 표준 소스 레포인 푸가 있다면, 저는 그 레포에서 일하고 싶지 않습니다. 제 프로젝트에 대해 적절한 PR을 발행하는 데 사용할 수 있는 포크를 원합니다.
GitHub에 두 번째 계정을 만들고 이를 위해 노력하여 이 문제를 해결했습니다.
GitHub 웹 사이트에서 30초 만에 매우 간편한 방법:
- 담당자의 URL을 복사합니다. 예:
https://github.com/YourName/YourOldRepo
(힌트: 당신이 github에서 당신의 repo 메인 페이지를 볼 때의 URL입니다. - 다음을 클릭합니다.
+
아이콘을 클릭합니다.
- 리포지토리 가져오기를 선택합니다.
- URL"을 가 나타나면 #1"module URL"에서.
- 한 후 "" "" " " " " 를 클릭합니다.
Begin Import
. - 바로 그거야!이제 모든 커밋 기록과 분기가 포함된 전체 레포 사본을 갖게 되었습니다!
제한 사항:실제 포크는 아닙니다.레포의 사본입니다.꺼내기 요청을 앞뒤로 수행할 수 없습니다.
이제 기본 리포지토리를 템플릿으로 표시할 수 있습니다(설정에서 템플릿 리포지토리로 표시). 리포지토리의 기본 페이지에서 이 템플릿을 사용하여 두 번째 리포지토리를 만들 수 있습니다.
템플릿에서 리포지토리를 만드는 것은 리포지토리를 포킹하는 것과 비슷하지만 다음과 같은 중요한[1] 차이점이 있습니다.
- 새 포크는 상위 리포지토리의 전체 커밋 기록을 포함하고 템플릿에서 만들어진 리포지토리는 단일 [1]커밋으로 시작합니다.
- 포크에 대한 커밋은 기여 그래프에 표시되지 않지만 템플릿에서 생성된 리포지토리에 대한 커밋은 기여 [1]그래프에 표시됩니다.
- 포크는 템플릿에서 리포지토리를 만드는 동안 기존 프로젝트에 코드를 제공하는 임시 방법이 될 수 있습니다.[1]
Github 도움말: 템플릿 저장소 만들기 템플릿에서 리포지토리 만들기
- git clone https://github.com/YOURREPO.git TargetRepoName
- cd TargetRepoName/
- git remote set-url origin https://github.com/TargetRepoName.git
- git push -u 오리진 마스터
자신의 보고서를 동일한 계정으로 분기할 수는 없지만, 자체 소유 조직 계정으로 만들 수 있으며, '+' 버튼을 통해 무료로 쉽게 만들 수 있습니다.
이 옵션의 주요 이점은 새 레포가 단순한 클론이 아닌 원래 레포의 실제 포크라는 것입니다.즉, 예를 들어 원래 레포의 변경 내용을 새 레포로 업데이트할 수 있습니다(복제된 레포의 경우는 그렇지 않습니다).
제가 볼 수 있는 유일한 단점은 분기된 레포가 사용자 프로필 아래에 나타나지 않고 조직 1 아래에 표시된다는 것입니다.
원하는 효과를 얻을 수 있는 가장 간단한 방법은 새 리포지토리를 만든 다음 가져오기 옵션을 선택하고 포크할 리포지토리의 URL을 제공하는 것입니다.
아래 이미지가 도움이 됩니다.
복제하고 새 빈 레포를 생성한 후 푸시하기만 하면 됩니다.
저는 "리포지토리 복제"에 대한 공식 지침을 따랐고 효과가 있는 것 같았습니다.
https://help.github.com/articles/duplicating-a-repository/
포킹 없이 리포지토리의 복제본을 생성하려면 원래 리포지토리에 대해 특수 복제 명령을 실행하고 새 리포지토리에 미러 푸시해야 합니다.이것은 GitHub에서 호스팅되는 저장소뿐만 아니라 모든 Git 저장소에서 작동합니다.
불행하게도 VonC의 수용된 해결책은 제가 얻었기 때문에 저에게 효과가 없었습니다.
원격: 리포지토리를 찾을 수 없습니다.
효과가 있었던 것은 다음과 같습니다.
- new_repoat github 생성
- git clone new_repo
- cd new_repo
- git remote upstream old_repo.git 추가
- git pull 업스트림 마스터
- git 푸시 오리진 마스터
여기서 위의 모든 것을 얻었습니다.
GitHub을 사용하는 비기술 전문가를 위해 위의 다른 훌륭한 답변에 대한 대안으로 간단한 해결책이 있습니다.필요한 것은 GitHub Desktop 애플리케이션입니다.
- 브라우저에서 자신의 프로젝트 레포를 열고 zip으로 다운로드합니다.
your-project-master.zip
. - 압축을 풀고 새 레포로 이름을 변경합니다.
- GitHub Desktop을 열고 압축 해제된 로컬 경로 new repo를 찾아 새 repo를 추가합니다.
- 게시 단추를 클릭하여 Github에 게시합니다.이름과 설명을 추가하는 것을 잊지 마세요 :)
단계별로
먼저 액세스 토큰을 생성해야 합니다.
그러면:
기존 리포지토리 가져오기
여기:
새 리포지토리의 이름 입력
이제 중요한 단계는
암호 블록에 생성한 액세스 토큰을 입력해야 합니다.
방금 이것을 시도해 봤는데 효과가 있었습니다.
- 레포를 조직 계정으로 전환
- 이름 바꾸기
- 소유권을 자신에게 다시 이전
새 repo를 생성할 때 repo.git url을 사용하여 다른 repo에서 가져올 수 있습니다.30초가 걸렸습니다.
- 허브 웹프론트엔드를 사용하여 새 빈 평판 만들기
- 이전 repo의 복제본에서 원격을 교체하고 다음을 누릅니다.
git remote remove origin
git remote add origin git@github.com:account/new.git
git branch -M main
git push -u origin main
이는 @mcepl의 답변과 @wadesworld의 의견을 결합한 것으로, github에 새 리포지토리를 만들 때 표시되는 공식 솔루션과 매우 유사합니다("…또는 명령줄에서 기존 리포지토리 밀어넣기" 제목 아래).
언급URL : https://stackoverflow.com/questions/10963878/how-do-you-fork-your-own-repository-on-github
'programing' 카테고리의 다른 글
JPA - DDL에서 문자열 열을 varchar(max)로 설정하는 방법 (0) | 2023.06.29 |
---|---|
어떻게 하면 Git-diff처럼 일을 어렵게 할 수 있을까요? (0) | 2023.06.29 |
판다 데이터 프레임에 목록이나 시리즈를 행으로 추가하시겠습니까? (0) | 2023.06.29 |
참조된 모델의 필드별 모델에 대한 Mongoose 중첩 쿼리 (0) | 2023.06.29 |
where 절의 계산된 필드 사용 (0) | 2023.06.29 |