기존 repo의 분기에서 새 GitHub repo를 만들려면 어떻게 해야 합니까?
저는 마스터 지점과 신규 프로젝트 지점이 있습니다.이제 새로운 프로젝트 지점을 기반으로 마스터와 함께 새로운 레포를 만들고 싶습니다.
배경:세 개의 독립적인 응용프로그램을 포함하는 하나의 리포지토리가 있습니다.이런 식으로 시작된 게 아닙니다.레포에는 원래 앱이 하나밖에 없었습니다.그러나 시간이 지남에 따라 비즈니스 요구사항이 변화했습니다.하나의 앱이 두 개가 되었습니다(레거시 버전과 다시 쓰기).웹 서비스가 추가되었습니다.세 개의 프로젝트를 포함하기 위해 별도의 분기가 사용되었습니다.하지만, 그들은 어떤 코드도 공유하지 않습니다.따라서 이러한 데이터를 자체 저장소로 분할하는 것이 더 간단합니다.
@user292677의 아이디어로 시작하여 문제를 해결하기 위해 수정했습니다.
- 새 리포인 허브를 만듭니다.
- cd를 추출할 이전 repo의 로컬 복사본으로 이동합니다. 이 복사본은 new-repo의 마스터가 될 new-project 분기를 추적하도록 설정됩니다.
$ git push https://github.com/accountname/new-repo.git +new-project:master
새 깃허브 레포가 완료되었습니다.결과는 다음과 같습니다.
- new-repo라는 이름의 새 Github 저장소,
- 의 집입니까?
master
이전 레포의 새 프로젝트에 해당합니다. - 모든 역사가 보존된
실제로 이 방법을 사용하면 원하는 대로 이름을 변경하여 직접 선택한 지점을 사용하여 새 리포를 만들 수 있습니다.
$ git push git@github.com:accountname/new_repo +new-project:master +site3a:rails3
그 결과 기존 사이트3a 분기도 새 레포로 이동되고 레일3로 나타납니다.이것은 정말 잘 작동합니다. 네트워크 다이어그램은 새 마스터와 레일 3을 전체 이력과 서로 정확한 관계로 보여줍니다.
2013-12-07 업데이트: 다른 프로젝트와 함께 사용하여 이 레시피가 여전히 작동하는지 확인했습니다.
2018-01-11 업데이트: 3단계. https 프로토콜에 GitHub 권장 사항을 사용하도록 업데이트되었습니다.레시피는 여전히 유효합니다.
cd를 old_dll 및 다음을 포함하는 로컬 repo로 이동합니다.
$ git push https://github.com/accountname/new_repo.git +old_branch:master
- github에서 NEW_REPOITORY를 생성합니다.
- cd OLD_REPOITORY
- git push https://github.com/accountname/NEW_REPO +master:master
이상입니다. (참고: git 내역 보존)
위의 답변을 시도해 본 결과 +master:master를 지정하지 않았기 때문에 충분히 구체적이지 않다는 것을 알게 되었습니다. 이것이 제가 그것을 작동시키는 데 필요한 것입니다.잘 작동합니다.
소스(github의 SSH 문제를 방지하기 위해 수정한 내용 포함):Mauricio Aiello, 전 Java 수석 개발자, https://www.quora.com/How-do-I-create-a-new-GitHub-repository-from-a-branch-in-an-existing-repository
git clone -b new-project /path/to/repo /new/repo/path
GitHub 내에서 레포를 "포크"한 다음 복제본의 관리 탭으로 이동할 수 있습니다.리포지토리 이름 및 "가시성" 아래에는 분기 드롭다운 메뉴가 있는 "기본 분기"가 있습니다.선택하세요.new-project
.
편집: 방깨았어요달금요라는 것을 깨달았습니다.master
입니다."기본" 분기뿐만 아니라 설정할 분기입니다.그래서...
- GitHub 복제
them/repo
you/repo
. - 려달을 합니다.
git clone git@github.com:you/repo.git
- »
gitk
. - [당신은 당신이 만들기를 원할 수도 있습니다.
old-master
이전 커밋에 대한 추적을 잃지 않도록 분기합니다.] - 에서 가장 .
new-project
분기에서 커밋 메시지를 마우스 오른쪽 단추로 클릭하고 "마스터 분기를 여기로 재설정"을 선택합니다.(명령줄에서 다음을 사용하여 이 작업을 수행할 수도 있습니다.)git-reset
하지만 저는 정확한 호출을 알아내지 못했습니다.)
GitHub 보고서에 대한 다음 푸시업은 다음에 수행해야 합니다.--force
선택할 수 있지만 그렇지 않으면 당신은 끝입니다.
자체 저장소 중 하나인 경우 다음과 같은 작업을 수행합니다.
- 려달을 합니다.
git clone git@github.com:you/orig.git
- 려달을 합니다.
git clone orig copy
- 처럼, 에서 보면, 설것처럼명한지내서에역만하지서에위▁as▁the▁within서내에▁but,지역▁from럼.
copy
합니다.master
원하는 곳으로 분기합니다. - 프로젝트 빈 GitHub 프만기들로트
you/copy
에 따라 를 GitHub의 합니다.copy
master
그리고 당신은 끝났어요!
이것이 좋은 방법인지는 잘 모르겠지만 어쨌든 쉽습니다.
git clone -b new-project git@github.com:User/YourProject.git newProjcet
그런 다음 새 평판 허브를 만든 다음 푸시합니다.
단순히 새 보고서를 만들 때 이전 프로젝트에 대한 참조가 없어지고 새 프로젝트에 동기화된 원래 프로젝트의 업데이트를 유지하는 것이 더 어려워집니다.아마도 레포를 포크하는 것이 더 낫지 않을까요?
메인이 아닌 다른 지점을 원하신다면 이렇게 하시면 됩니다.
- 새 풍선 Github 만들기
- 이전 repo의 CD(나의 경우, 나는 이전 repo와 복사할 지점에 있습니다)
- git push https://github.com/your_username/new-repo.git +from_old_repo: the_main_or_repo_new_repo에서 _main_or_repo_repo.
이전 보고서에서 새 보고서로 분기를 복사했습니다(메인이 아닌 다른 분기로 푸시되었습니다. 콜론 뒤에 입력하는 내용에 따라 다릅니다(3단계의 BOLD 부분).
SourceTree를 사랑하는 경우 간단한 단계를 수행하십시오.
새 레포로 복제할 브랜드 확인
소스 트리의 도구 모음에서 터미널 버튼을 클릭하여 이 브랜드에서 터미널 열기
터미널에 명령을 내립니다.
$ git push https://github.com/accountname/new_repo.git
위의 Alexey Kislitsin의 답변에 기초한 git 명령.
언급URL : https://stackoverflow.com/questions/9527999/how-do-i-create-a-new-github-repo-from-a-branch-in-an-existing-repo
'programing' 카테고리의 다른 글
Git: Windows용 GitHub 클라이언트로 Git in PATH 설치 (0) | 2023.07.08 |
---|---|
파이썬을 사용하여 텍스트 파일에서 특정 행을 삭제하는 방법은 무엇입니까? (0) | 2023.07.08 |
ObjectId'를 사용하여 MongoDB 쿼리 (0) | 2023.07.08 |
Angular FormArray 디스플레이 유효성 검사 오류 (0) | 2023.07.08 |
Multipart POST 요청에 대한 TestRestTemplate와의 통합 테스트에서 400을 반환합니다. (0) | 2023.07.08 |