git.fedorahosted.org에 리포지토리가 있고 github에서 내 계정으로 복제하여 페도라 호스트의 “공식”레포지토리를 제외하고 내 놀이터를 만들고 싶다고 가정 해보십시오. 처음에 그것을 복사하는 단계는 무엇입니까? github에는이 멋진 “포크”버튼이 있지만 분명한 이유로 이것을 사용할 수 없습니다.
그리고 페도라 호스트 리포지토리의 github 변경 사항을 어떻게 추적합니까?
답변
- github에서 새로운 저장소를 만듭니다.
- 페도라 호스트에서 로컬 시스템으로 리포지를 복제합니다.
git remote rename origin upstream
git remote add origin URL_TO_GITHUB_REPO
git push origin master
이제 다른 github 저장소와 마찬가지로 작업 할 수 있습니다. 업스트림에서 패치를 가져 오려면 간단히 실행하십시오 git pull upstream master && git push origin master
.
답변
이 질문에 유용한 링크가있는 삭제 된 답변이 있습니다 : https://help.github.com/articles/duplicating-a-repository
요점은
0. create the new empty repository (say, on github)
1. make a bare clone of the repository in some temporary location
2. change to the temporary location
3. perform a mirror-push to the new repository
4. change to another location and delete the temporary location
OP의 예 :
로컬 컴퓨터에서
$ cd $HOME
$ git clone --bare https://git.fedorahosted.org/the/path/to/my_repo.git
$ cd my_repo.git
$ git push --mirror https://github.com/my_username/my_repo.git
$ cd ..
$ rm -rf my_repo.git
답변
기존 리포지를 다른 곳으로 푸시하려면 다음을 수행해야합니다.
-
원래 저장소를 먼저 복제하십시오.
git clone https://git.fedorahosted.org/cgit/rhq/rhq.git
-
복제 된 소스를 새 저장소로 푸시하십시오.
cd rhq git push https://github.com/user/example master:master
당신은 변경 될 수 있습니다 master:master
에 source:destination
지점입니다.
특정 커밋 (분기)을 푸시하려면 다음을 수행하십시오.
-
원래 저장소에서 새 분기를 작성하고 체크 아웃하십시오.
git checkout -b new_branch
-
시작하려는 지점을 선택하고 재설정하십시오.
git log # Find the interesting hash git reset 4b62bdc9087bf33cc01d0462bf16bbf396369c81 --hard
또는
git cherry-pick
기존 HEAD에 추가 할 커밋을 선택하십시오 . -
그런 다음 새 저장소로 푸시하십시오.
git push https://github.com/user/example new_branch:master
rebasing하는
-f
경우 강제 푸시에 사용하십시오 (권장되지 않음).git reflog
변경 기록을 보려면 실행 하십시오.
답변
로컬 리포지토리 (로컬 브랜치 등)를 새 리모컨으로 푸시하고 싶습니까? 아니면 기존의 리포지토리 (모든 브랜치, 태그 등)를 새 원격으로 미러링하고 싶습니까? 후자가 여기 에 git 저장소를 올바르게 미러링하는 방법 에 대한 훌륭한 블로그입니다 .
매우 중요한 내용은 블로그를 읽어 보는 것이 좋지만 짧은 버전은 다음과 같습니다.
새 디렉토리에서 다음 명령을 실행하십시오.
git clone --mirror git@example.com/upstream-repository.git
cd upstream-repository.git
git push --mirror git@example.com/new-location.git
답변
이 시도 전체 Git 저장소를 이동하는 방법을
-
다음을 사용하여 temp-dir 디렉토리에 로컬 저장소를 작성하십시오.
자식 클론 임시 디렉토리
-
temp-dir 디렉토리로 이동하십시오.
-
ORI의 다른 브랜치 목록을 보려면 다음을 수행하십시오.
git branch -a
-
다음을 사용하여 ORI에서 NEW로 복사하려는 모든 브랜치를 확인하십시오.
git checkout branch-name
-
이제 다음을 사용하여 ORI에서 모든 태그를 가져옵니다.
git fetch --tags
-
다음 단계를 수행하기 전에 다음 명령을 사용하여 로컬 태그 및 분기를 확인하십시오.
git tag git branch -a
-
이제 다음 명령을 사용하여 ORI 저장소에 대한 링크를 지우십시오.
git remote rm origin
-
다음 명령을 사용하여 로컬 저장소를 새로 작성된 새 저장소에 연결하십시오.
git remote add origin <url to NEW repo>
-
이제 다음 명령으로 모든 브랜치 및 태그를 푸시하십시오.
git push origin --all git push --tags
-
이제 ORI 저장소의 전체 사본이 있습니다.
답변
간결하고 이해하기 쉬운 set-url 을 사용하는 솔루션을 찾았습니다 .
- Github에서 새로운 저장소를 만듭니다
cd
로컬 컴퓨터의 기존 저장소에 저장하십시오 (아직 복제하지 않은 경우 먼저 수행하십시오)git remote set-url origin https://github.com/user/example.git
git push -u origin master
답변
기존 Git 리포지토리가있는 경우 :
cd existing_repo
git remote rename origin old-origin
git remote add origin https://gitlab.com/newproject
git push -u origin --all
git push -u origin --tags