Bitbucket 및 GitHub에 푸시하려는 저장소가 하나 있습니다. 내 저장소가 둘 다에 의해 호스팅되는 것이 중요합니다.
Git에서이 작업을 수행하는 방법이 있습니까?
답변:
git과 함께 여러 원격 저장소를 사용할 수 있습니다. 하지만 내가 믿는 리모컨 2 개에 별도로 밀어 넣어야합니다.
예를 들어 프로젝트가 현재 github를 가리키는 경우 현재 원격 저장소의 이름을 다음과 같이 바꿀 수 있습니다 github
.
$ git remote rename origin github
그런 다음 다른 원격 저장소를 추가 할 수 있습니다 bitbucket
.
$ git remote add bitbucket git@bitbucket.org:your_user/your_repo.git
이제 github 또는 bitbucket의 해당 분기에 변경 사항을 푸시하려면 다음을 수행 할 수 있습니다.
$ git push github HEAD
$ git push bitbucket HEAD
풀링에도 동일한 규칙이 적용됩니다. 풀링 할 리모컨을 지정해야합니다.
$ git pull github your_branch
$ git pull bitbucket your_branch
.ssh/config
파일이이 설정을 달성하는 열쇠입니다. 사용할 항목 을 식별하려면 a Host github.com
와 a Host bitbucket.org
를 추가하십시오 IdentityFile
. 그러면 bitbucket과 github간에 앞뒤로 스왑을 시도하는 동안 권한 거부 오류가 발생하지 않습니다. 이것이 누군가를 돕기를 바랍니다.
예, 할 수 있습니다. 두 번 푸시 할 필요는 없지만 두 원격 리포지토리에 푸시하려면 한 번만하면됩니다. 나는 전에 같은 문제가 있었기 때문에 여기에 그것을하는 방법을 썼습니다. Git : Github 및 Bitbucket 모두에서 푸시 / 풀
몇 가지 EASY 솔루션.
이것은 머리를 돌리는 것이 가장 쉽지만 유지하는 데 가장 많은 노력을 기울입니다.
새 리모컨을 추가하여 시작합니다.
$ cd myproject
$ git remote add bitbucket ssh://git@bitbucket.org/user/myproject.git
$ git push bitbucket master
똑바로 아니? 물론 변경 사항을 커밋 할 때마다 원본 "원본"과 새로운 원격 "bitbucket"을 모두 푸시해야합니다.
$ git push origin master
$ git push bitbucket master
엄청난 오버 헤드는 아니지만 시간이 지남에 따라 갈릴 것이라고 확신합니다. 또는`alias gpob = "git push origin master && git push bitbucket master"를 만들 수 있습니다.
이 방법을 사용하여 기존 원격 "원본"에 URL을 추가 할 것입니다.
$ cd myproject
$ git remote set-url --add origin ssh://git@bitbucket.org/user/myproject.git
$ git push origin master
Everything up-to-date
Everything up-to-date
훨씬 적은 노력!
물론 은색 라이닝에는 클라우드가 있습니다.이 경우에는 여러 URL을 동시에 푸시 할 수 있지만 원래 "원본"에서만 가져올 수 있습니다 (변경할 수 있지만이 게시물에서는 범위를 벗어납니다). ).
마지막으로, 어떤 리모컨을 가져올 지 확인하려면 :
$ git remote -v show
나도 블로그에 올렸다 .