ProgramingTip

github의 git repo를 동일한 조직으로 복사 / 포크

bestdevel 2020. 11. 8. 10:38
반응형

github의 git repo를 동일한 조직으로 복사 / 포크


두 개의 다른 도메인에 배포 된 웹 응용 프로그램이 포함 된 github에 저장소가 있습니다. 응용 프로그램에는 배포 된 도메인에 따라 다르게 작동하는 약간의 논리 분기가 있습니다.

각 도메인에 대해 하나씩 두 개의 개별 리포지토리로 분할하려는 지점에 도달했습니다.

Github는 동일한 조직으로 포크하는 것을 허용하지 않습니다. "git duplicate repo"를 검색하면 복제 및 미러 푸시를 수행해야 할 제안하지만 두 저장소를 동기화 상태로 유지하기위한 것입니다.

이것에 대해 가장 좋은 방법은 무엇입니까? 가능한 경우 새 복사본에서 이전 커밋 기록을 보존하고 싶습니다.


새 저장소를 만들고 작업 복사본에서 푸시하기 만하면됩니다.

git clone git@github.com:me/myrepo-original
cd myrepo-original
git remote set-url origin git@github.com:me/myrepo-new
git push origin master

이제와 myrepo-new동일한 저장소 가 생겼습니다 myrepo-original.


fork 관계가 필요하지 않은 경우 (예 : 어떤 종류의 분리 된 대체 저장소를 원함) Google 검색 및 Larsk의 답변에 의해 개요로 저장소를 복제하는 것이 좋습니다.

이 경우 당신 않는 그것을 포크, 연락처 Github에서에서 지원 (또는 만들고 싶어 support@github.com https://github.com/support ), 그들은 당신을 위해 동일 조직의 포크 를 생성합니다 . (그들은 이것에 까다 롭지 고유 한 계정 내의 리포지토리 이름은해야 할 일 포지 토리의 대체 이름을 제공하기 만하면됩니다.)


업데이트 : 사용자 Steve Rice는 GitHub 지원이 현재 / 더 이상 귀하의 계정에 두 번째 포크를 설정하지 않을 것입니다. 지원 직원이 할 수 있기 때문에 여전히 물어볼 수있는 정책 변경으로 인해 그렇게 할 수 없습니다.


페이지 상단의 + 메뉴에서 Github의 Import Repository 옵션 사용

이렇게하면 복사 된 저장소의 정확한 내용으로 새 저장소가 생성됩니다. 단점은 Github의 포크로 제공되지 않습니다.


또 다른 방법은 복사 할 원본 저장소를 현재 저장소의 원격으로 추가하는 것입니다.

#create a new repo in the org1 organization called myrepo-new

로컬 터미널에서 다음을 실행하십시오.

git clone git@github.com:org1/myrepo-new
cd myrepo-new
git remote -v #shows current repo link on github as origin
git remote add name-for-remote https://github.com/org1/repo-old
git remote -v #shows repo-old as name-for-remote
git fetch  name-for-remote
git merge name-for-remote/branch-to-get-from-remote
#Now fix any conflicts if present
#If number of files/commits is very high, the desktop client may hang when you try to commit your changes after merge. Try switching to Git Shell if this happens.
git status 
git commit -m "commit message"
git push origin master

대체 솔루션 :

새 조직을 만들고 거기에 포크하십시오. 저장소가 비공개 인 경우 새 조직 회의 비공개로 유지됩니다. 그런 다음 외부 개발자 또는 분기 된 리포지토리에 원하는 사람에게 액세스 권한을 부여하고 PR을 원래 리포지토리로 되돌릴 수 있습니다.


로컬 폴더를 복제하고 git 항목을 수 없습니다.

rm -rf .git*

그런 다음 해당 폴더에 새 저장소를 만들시겠습니까? 깨끗하고 시청합니다.

참고 URL : https://stackoverflow.com/questions/22767617/copy-fork-a-git-repo-on-github-into-same-organization

반응형