programing

기존 repo를 새로운 다른 리모트 repo 서버에 푸시하시겠습니까?

padding 2023. 4. 23. 10:08
반응형

기존 repo를 새로운 다른 리모트 repo 서버에 푸시하시겠습니까?

git에 저장소가 있다고 칩시다.fedorahosted.org과 저는 이것을 github의 제 계정에 복제하여 fedorahosted에 대한 보다 "공식적인" repo 말고도 나만의 놀이터를 갖고 싶습니다.처음에 그것을 복사하는 절차는 무엇입니까?GITHUB 내에는 Fork 버튼이 있습니다만, 명백한 이유로 사용할 수 없습니다.

페도라로스트된 리포에서 기투브 리포트로의 변화를 어떻게 추적할 수 있을까요?

  1. github에서 새 repo를 만듭니다.
  2. fedurahosted에서 로컬 머신으로 repo를 복제합니다.
  3. git remote rename origin upstream
  4. git remote add origin URL_TO_GITHUB_REPO
  5. git push origin master

기투브 레포업스트림에서 , 「 「 」를 합니다.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

기존 레포(repo)를 다른 곳으로 이동하려면

  1. 먼저 원래 repo를 복제합니다.

    git clone https://git.fedorahosted.org/cgit/rhq/rhq.git
    
  2. 복제된 소스를 새 저장소에 푸시합니다.

    cd rhq
    git push https://github.com/user/example master:master
    

할 수 .master:mastersource:destination★★★★★★ 。


특정 커밋(브랜치)을 푸시하려면 다음 작업을 수행합니다.

  1. 원래 repo에서 새 분기를 만들고 체크아웃합니다.

    git checkout -b new_branch
    
  2. 다음을 선택하고 시작할 지점으로 재설정합니다.

    git log # Find the interesting hash
    git reset 4b62bdc9087bf33cc01d0462bf16bbf396369c81 --hard
    

    by "를 합니다.git cherry-pick헤드를 사용하다

  3. 그런 다음 새 보고서로 이동합니다.

    git push https://github.com/user/example new_branch:master
    

    설정을 변경할 ""를 사용합니다.-f도망쳐요.git reflog변경내역을 확인합니다.

기존 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

set-url을 사용한 솔루션을 찾았습니다.이 솔루션은 간결하고 이해하기 쉽습니다.

  1. Github에서 새로운 레포(repo)를 만들다
  2. cd머신의 복제하지 경우 이 을 수행하십시오.
  3. git remote set-url origin https://github.com/user/example.git
  4. git push -u origin master

로컬 저장소(로컬 지점 등)를 새 리모트에 푸시하기만 하면 됩니까?아니면 오래된 리모트(모든 지점, 태그 등)를 새 리모트에 미러링하시겠습니까?만약 후자가 git 저장소를 올바르게 미러링하는 방법에 대한 훌륭한 블로그라면.

블로그에서 매우 중요한 내용을 읽어보시길 강력히 권합니다만, 간략한 내용은 다음과 같습니다.

새 디렉토리에서 다음 명령을 실행합니다.

git clone --mirror git@example.com/upstream-repository.git
cd upstream-repository.git
git push --mirror git@example.com/new-location.git

전체 Git 저장소를 이동하는 방법 사용

  1. 다음을 사용하여 temp-dir 디렉토리에 로컬저장소를 만듭니다.

    클론 git 온도 조정

  2. temp-dir 디렉토리로 이동합니다.

  3. ORI do에서 다른 브랜치 목록을 표시하려면 다음 절차를 수행합니다.

    git branch -a
    
  4. 다음을 사용하여 ORI에서 NEW로 복사하는 모든 브랜치를 체크 아웃합니다.

    git checkout branch-name
    
  5. 다음 명령을 사용하여 ORI에서 모든 태그를 가져옵니다.

    git fetch --tags
    
  6. 다음 단계를 수행하기 전에 다음 명령을 사용하여 로컬 태그 및 브랜치를 확인하십시오.

    git tag
    
    
    git branch -a
    
  7. 다음 명령어를 사용하여 ORI 저장소에 대한 링크를 클리어합니다.

    git remote rm origin
    
  8. 다음 명령을 사용하여 로컬 저장소를 새로 만든 새 저장소에 링크합니다.

    git remote add origin <url to NEW repo>
    
  9. 다음 명령을 사용하여 모든 브랜치 및 태그를 푸시합니다.

    git push origin --all
    
    
    git push --tags
    
  10. 이것으로 ORI 리포트의 완전한 카피를 입수할 수 있습니다.

다음 명령으로 GIT repo URL을 변경하여 새로운 repo를 가리킵니다.

git remote set-url origin [new repo URL]

::git remote set-url origin git@bitbucket.org:Batman/batmanRepoName.git

이제 밀고 당기기는 새로운 REPO에 연결됩니다.

그런 다음 이렇게 정상적으로 누릅니다.

git push -u origin master

이것은 내 로컬 프로젝트를 다른 repo on git으로 푸시하는 데 도움이 되었다.

 git push https://github.com/yourusername/yourgithubproject.git master:master

다음은 수동으로 수행하는 방법입니다.

  1. 합니다.git clone <old remote>
  2. GitHub 저장소 만들기
  3. .<repository>/.git/config

    $ git config -e
    
    [core]
        repositoryformatversion = 0
        filemode = false
        bare = false
        logallrefupdates = true
        symlinks = false
        ignorecase = true
    [remote "origin"]
        url = <old remote>
        fetch = +refs/heads/*:refs/remotes/origin/*
    [branch "master"]
        remote = origin
        merge = refs/heads/master
    

    리모트(url 옵션)를 변경합니다.

    [remote "origin"]
        url = <new remote>
        fetch = +refs/heads/*:refs/remotes/origin/*
    
  4. push gith GitHub에 푸시합니다.git push

양쪽/복수의 리모트도 사용할 수 있습니다.

로컬 저장소를 다른 원격 저장소에 연결

1- 리모트 저장소와의 접속을 모두 삭제합니다.프로젝트 폴더 내부:

  • git rm .git저장소에서 )(「」)
  • git status되어 있지 것) (어느 쪽과도 연결되어 있지 않다)

2- 새로운 리모트 저장소 링크

  • git init
  • git remote add origin urlrepository.git와의
  • git remote -v되어 있는 한다.

3- 로컬 저장소에 변경 추가원격 저장소에 푸시

  • git pull ★★★★★★★★★★★★★★★★★」git pull origin master --allow-unrelated-histories repo.
  • git add.
  • git commit -m" Message "
  • git push -u origin master

바로 그거야!

명령줄에서 기존 리포지토리를 푸시하려면 다음과 같이 하십시오.

git remote add origin https://github.com/AyadiAkrem/teachandgo.git
git branch -M main
git push -u origin main

기투브 기투브 다음 저장소로 합니다. 를 들어, "보다"를 합니다. ★★★★★★★★★★★★★★★★★,master 절차를 .다음의 5개의 간단한 순서를 실행할 필요가 있습니다.

git remote add origin2 https://github.com/user/example.git
git checkout master
git pull
git push origin2 master
git remote remove origin2

이것에 의해, 로컬 레포와 새로운 리모트간의 링크가 작성되어 송신원브런치를 체크 아웃 해 꺼낸 후(최신인 것을 확인하기 위해서), 현재의 브런치를 푸시 해, 최종적으로 리모트로부터 로컬 레포의 링크가 해제됩니다.

이 후 로컬 리포는 그대로이므로 이전과 같이 사용할 수 있습니다.여러 브런치를 푸시해야 할 경우checkout-pull-push필요에 따라서 브랜치명을 변경하기만 하면 됩니다.

저도 같은 문제가 있었어요.

제 경우 로컬 머신에 원래 저장소가 있기 때문에 숨김 파일(.git, .gitignore)이 없는 새 폴더에 복사본을 만들었습니다.

마지막으로 새로 만든 폴더에 .gitignore 파일을 추가했습니다.

그런 다음 로컬 경로에서 새 저장소를 만들고 추가했습니다(내 경우 GitHub Desktop 사용).

Visual studio 2022와 기본 git 확장은 명령어 한 줄 없이도 완벽하게 작동합니다.

1단계: git 설정으로 이동

여기에 이미지 설명 입력

2단계: git/azure에서 다른 저장소를 가리키는 새 오리진 추가

여기에 이미지 설명 입력 여기에 이미지 설명 입력

스텝 3: 이제 git/azure의 다른 저장소에 있는 새로운 오리진에 푸시할 수 있는 옵션이 있습니다.

여기에 이미지 설명 입력

이제 새 저장소에 새 분기가 있습니다.

이 일을 해낸 방법은 다음과 같습니다.

  1. github에 새 repo를 만듭니다(new-repo.git).
  2. cd old-repo/로컬 시스템에서 모든 새 변경 내용을 가져옵니다.
  3. git push -u https://github.com/[username]/new-repo.git main -f
  4. 새로운 리모트 리포트 클론 작성https://github.com/[username]/new-repo.git로컬 환경으로의 이행

오래된 리모트 리포트를 새로운 리모트 리포에 카피하는 간단한 방법이 있습니다.

언급URL : https://stackoverflow.com/questions/5181845/git-push-existing-repo-to-a-new-and-different-remote-repo-server

반응형