GitHub에서 Bitbucket으로 분기 일하고 있는데 GitHub

CakePHP 기반 프로젝트에서 일하고 있는데 GitHub 에서 호스팅됩니다 . 내 프로젝트Bitbucket 에서 호스팅되고 있습니다. 둘 다 git을 사용 합니다. 기본적으로 업데이트를 얻을 수 있도록 Bitbucket 리포지토리에 CakePHP 의 ‘포크'( git을 처음 사용하기 때문에 올바른 용어를 사용하고 있는지 모르겠습니다)를 만들고 싶습니다. 모든 CakePHP zip / tar를 다운로드하고 폴더를 교체 할 필요없이 커밋하고 푸시하지만 ‘병합'(?)



답변

오늘은 다른 사이트에서 “풀 요청”을 보낼 수 없습니다. Bitbucket 이슈 트래커에 # 3288 기능 요청을 추가했습니다 . 이것을 추적하려면 자신을 추종자로 추가하는 것이 좋습니다.

그러나 zip 파일이나 tarball을 다운로드하지 않고도 소스를 GitHub에서 Bitbucket으로 옮길 수 있습니다. GitHub에서 복제하여 Bitbucket으로 푸시합니다.

$ git clone https://github.com/cakephp/cakephp
$ cd cakephp
$ git push git@bitbucket.org:mg/cakephp.git master

내가 만든 mg/cakephp최초의 Bitbucket에 빈 Git 저장소로. 그렇게하면 변경 세트를 GitHub에서 Bitbucket으로 푸시 / 풀할 수 있습니다.


답변

아래의 워크 플로는 github 리포지토리를 새로운 원격이라고 sync하고 bitbucket 원격을로 추가 origin합니다. 또한 githubgithub 리포지토리 master를 추적하기 위해 호출되는 분기와 비트 버킷 리포지토리를 추적하기 위해 호출되는 분기를 추가 합니다. 비어있는 “myrepository”라는 비트 버킷 저장소가 있다고 가정합니다.

리모컨 설정

# setup local repo
mkdir myrepository
cd myrepository
git init

# add  bitbucket remote as "origin"
git remote add origin ssh://git@bitbucket.org/aleemb/myrepository.git

# add github remote as "sync"
git remote add sync https://github.com/aleemb/laravel.git

# verify remotes
git remote -v
# should show fetch/push for "origin" and "sync" remotes

설치 지점

# first pull from github using the "sync" remote
git pull sync

# setup local "github" branch to track "sync" remote's "master" branch
git branch --track github sync/master

# switch to the new branch
git checkout github

# create new master branched out of github branch
git checkout -b master

# push local "master" branch to "origin" remote (bitbucket)
git push -u origin master

이제 로컬 github브랜치가 github repo의 master브랜치를 추적 해야합니다 . 그리고 로컬 master브랜치가 비트 버킷 저장소 ( master기본적으로 브랜치)를 추적 해야합니다 .

이렇게하면 github브랜치를 쉽게 가져온 다음 변경 사항을 master브랜치에 병합하고 (병합보다 우선 적용) master브랜치를 푸시 (비트 버킷으로 푸시) 할 수 있습니다 .


답변

리포지를 최신 상태로 유지하려면 Github ( upstream)와 Bitbucket ( origin)의 두 가지 리모컨을 다음 과 같이 사용하십시오.

# Clone original CakePHP source code from Github
git clone --mirror https://github.com/cakephp/cakephp
cd cakephp
# Rename remote from `origin` to `upstream`
git remote rename origin upstream
# Add your Bitbucket repo (this is where your code will be pushed)
git remote add origin https://bitbucket/your/repo.git
# Push everything to Bitbucket
git push --mirror origin

Github에서 CakePHP 업데이트를 가져 오려면 :

git pull upstream master

코드 변경 사항을 Bitbucket으로 푸시하려면

git push origin master


답변

BitBucket에서 새 리포지토리를 생성 할 때 Import repository오른쪽 상단 의 버튼 을 클릭하십시오 . Clone or download포크하려는 리포지토리의 Github을 클릭 할 때 찾은 https URL을 입력하십시오 .

리포지토리에 이름을 지정하고 개인 정보 설정을 구성하면됩니다.


답변

프로젝트와 함께 리포지토리를 쉽게 다운로드하고 싶을 것 같고 cakePHP에 기여하지 않을 것입니다. 맞습니까?

그렇다면 리포지토리에 외부 참조를 추가하기 만하면됩니다.

SVN : GIT와 동일한 외부 항목이 있습니까?

나중에 cakePHP에 기여하고 싶더라도 원본 리포지토리에서 잘 수행 할 수 있습니다.


답변

@Martin Geisler의 답변 이후 Bitbucket은 github.com에서 리포지토리를 가져 오는 기능을 활성화했습니다.

나는 성공적으로 bitbucket.org에 개인의 repo에 github.com에서 개인의 repo를 가져올 수 있었다

단계 는 다음 같습니다.

  1. 작성 단추를 클릭하고 저장소 ( ‘+’> 저장소)를 선택하십시오.
  2. 이제 새 저장소를 작성하는 대신 나타나는 모달의 오른쪽 상단에서 가져 오기 저장소를 선택하십시오.
  3. 리포지토리를 가져 오기 위해 github repo의 URL과 인증 자격 증명을 새 모달에 입력하십시오.
  4. 그게 다야. 모든 것이 github에서 비트 버킷으로 부드럽게 가져옵니다.

스크린 샷의 오른쪽 상단에있는 가져 오기 저장소 링크를 참고하십시오.


답변