program tip

다른 사람의 Github에서 리포지토리를 복제하여 내 Github의 리포지토리로 푸시

radiobox 2020. 11. 23. 07:58
반응형

다른 사람의 Github에서 리포지토리를 복제하여 내 Github의 리포지토리로 푸시


https://github.com/railstutorial/sample_app_rails_4 에서 리포지토리를 복제하고 많은 변경을 수행했습니다 (내 앱의 시작점으로 사용함). 이제 변경된 앱을 내 자신의 github 계정에 repo.

연결된 github 리포지토리를 어떻게 변경할 수 있습니까?


Deefour가 말했듯이 귀하의 상황은 원격 Git 저장소의 URI (URL) 변경에있는 상황과 크게 다르지 않습니다 . clone리포지토리 인 경우 remote라는 이름 으로 귀하 의 리포지토리로 추가됩니다 origin. 지금해야 할 일은 (더 이상 이전 소스를 사용하지 않기 때문에) origin의 URL을 변경하는 것입니다 .

$ git remote set-url origin http://github.com/YOU/YOUR_REPO

원래 저장소가 자주 업데이트되고 이러한 업데이트를 수시로 받으려면 편집 origin하는 대신 새를 추가하는 것이 가장 좋습니다 remote.

$ git remote add personal http://github.com/YOU/YOUR_REPO

또는 이전 전화를 호출 할 수도 있습니다 upstream.

$ git remote rename origin upstream
$ git remote add origin http://github.com/YOU/YOUR_REPO

그런 다음에서 변경을 원할 때마다 다음 upstream을 수행 할 수 있습니다.

$ git fetch upstream

소스는 샘플 저장소 (시작하기위한 일종의 템플릿 인 것 같음)이므로 유지하거나 포크 할 필요가 전혀 없다고 생각합니다. 여기에서 첫 번째 대안을 사용하겠습니다.


GitHub : git clone다른 사람의 저장소 및 git push자신의 저장소

다른 사람의 저장소를 다른 저장소 라고하겠습니다 .


  1. github.com 에서 새 저장소를 만듭니다 . (이것은 당신의 저장소입니다 )

    • 다른 저장소 와 동일한 이름을 지정하십시오 .
    • README, .gitignore 또는 라이선스로 초기화하지 마세요.
  2. 다른 저장소 를 로컬 컴퓨터에 복제합니다 . (아직하지 않은 경우)

    • git clone https://github.com/other-account/other-repository.git
  3. 로컬 저장소의 현재 ' origin '을 ' upstream '으로 이름을 바꿉니다 .

    • git remote rename origin upstream
  4. 로컬 저장소에 저장소 를 가리키는 ' 원점 '을 지정 하십시오 .

    • git remote add origin https://github.com/your-account/your-repository.git
  5. 로컬 저장소를 밀어 저장소 GitHub의에.

    • git push origin master

이제 ' 원점 ' 은 저장소를 가리키고 ' 업스트림 '은 다른 저장소를 가리 킵니다 .

  • 를 사용하여 변경 사항에 대한 새 분기를 만듭니다 git checkout -b my-feature-branch.
  • git commit평소처럼 저장소이동할 수 있습니다 .
  • 다른 저장소 에서 마스터 브랜치로 git pull upstream master변경 사항을 가져 오는 데 사용 합니다 .

자식을 삭제하고 다시 초기화하십시오.

당신의 목적은 아마도이 저장소를 당신의 것으로 만들고 당신의 것으로 만드는 것입니다.

아이디어는 삭제 .git/하고 다시 초기화하는 것입니다.

  1. 복제 된 저장소 폴더로 이동 rm -rf .git
  2. 다시 초기화 한 다음 리모컨을 추가하고 첫 번째 푸시를 수행하십시오.
    git init
    git add .
    git commit -m "your commit message"
    git remote add origin 
    git push origin master
    

(명령 줄을 통해) 로컬 저장소에서 새 원격을 생성하여이를 수행 할 수 있습니다.

git remote add <name> <url>

그런 다음 전화 할 수 있습니다.

git push <name> <repo_name>

설정된 기본 "원본"원격을 바꾸려면 다음을 실행할 수 있습니다.

git remote rm origin
git remote add origin <url>

그렇게하는 "가장 정중 한 방법"은 다음과 같습니다.

  1. GitHub 계정에서 원래 리포지토리 포크
  2. 변경 사항에 대한 새 브랜치를 확인하십시오 git checkout -b <your_branch_name>(이전에 수행하지 않은 경우).
  3. 로컬 저장소에 대한 새 원격을 추가하십시오. git remote add github <your_repository_ssh_url>
  4. 아름다운 새 브랜치를 github 저장소로 푸시합니다. git push github <your_branch_name>

이런 식으로 리포지토리가 원래 리포지토리로 포크되고 변경 사항이 별도의 브랜치에 커밋됩니다. 이 방법은 원래 리포지토리에 풀 요청을 제출하려는 경우 더 쉬울 것입니다.


Git 에서 가져온 모든 것을 새로운 원점으로 푸시

기본적으로 새 저장소를 폴더에 연결해야합니다.

git remote add origin <address>
git push origin <branchname>

I had a similar situation, but in my case what I just needed to do was, as suggested, but with https, like this:

$ git remote set-url origin https://github.com/YOU/YOUR_REPO

참고URL : https://stackoverflow.com/questions/18200248/cloning-a-repo-from-someone-elses-github-and-pushing-it-to-a-repo-on-my-github

반응형