2016-10-01 5 views
2

github repostitory의 복제본을 (자체 호스트 된) bitbucket 서버에서 만들고 github 저장소에서 최신 변경 사항을 수시로 가져 오려고합니다. 우리 복제품에서 우리는 결코 우리 저장소를 떠나지 않을 실험적인 것들을 할 것입니다.git 저장소의 복제본 유지

설명; 화석와 나는 우리의 저장소와 자신의 저장소가 동일한 프로젝트 ID를 가지고 있는지 확인 거라고, 나는이 할 줄 :

$ cd ~/checkout/prjdir 
$ fossil pull https://their.org/prj/foo --once 

이 얻을 수있는 모든 최신 체크 인, 지점, 태그 등 그리고로를 우리 조직의 서버에 밀어 넣으십시오.

$ fossil push 

아무런 충돌도 없습니다. 실험적인 브랜치에 대한 변경이 이루어 지므로 업스트림에서 업데이트 할 때 병합 할 필요가 없습니다. 그것으로 가져왔다하는

$ git clone https://github.com/foo/bar.git 
$ cd bar 
$ git remote set-url origin https://ourbitbucket.org/foo/bar.git 
$ git push -u origin master 

이 그러나 나타나지 않습니다

나는 관련 보인다 초기 복제이 마련 몇 가지를 붙여/화석 워크 플로우 및 복사를 복제하려고했습니다 태그 (태그는 우리에게 중요합니다). 내가 (모든 브랜치와 태그를 포함) 저장소의 완전한 클론을 어떻게

  1. : 자식 (GitHub의 상류로 우리 자신의 태그/지점에 대한 우리의 bitbucket 서버)와

    ?

  2. 일단 복제 된 저장소가 있다면 (github의) (업스트림)에서 모든 최신 변경 사항 (지점, 태그 포함)을 가져 와서 서버 (bitbucket)로 푸시합니까?
+0

태그가 복제되지 않았다는 것을 어떻게 알 수 있습니까? 또는 '푸시 - 태그'를 원했습니까? – choroba

+0

'git fetch --tags'를 실행하면이 문제가 해결 될까요? – moopet

+0

@choroba --tags와 같은 것 같습니다. 감사. – cypheratheist

답변

2

리포지토리의 URL을 변경하지 마십시오. 두 개의 리모컨을 작성하십시오 (upstreamorigin).

태그는 기본적으로 푸시되지 않습니다. --tags을 사용하여 밀어 넣으십시오.

$ git clone https://github.com/foo/bar.git 
$ cd bar 
$ git remote rename origin upstream 
$ git remote add origin https://ourbitbucket.org/foo/bar.git 
$ git push -u --tags origin master 

당신은 상류와 동기화 할 때마다

$ git checkout master 
$ git pull upstream master 

또는

$ git reset --hard upstream/master 

할과에 변경 사항을 반영하기 위해 지점을 리베이스 (또는 그것으로 마스터 병합)하여 직장 :

$ git checkout my-branch 
$ git rebase master 

또는

$ git checkout my-branch 
$ git merge master 
+0

그래서 초기 복제 후 "git push -u --tags origin master"다음에 "git pull upstream"을 사용하겠습니까? 초기 초기 복제 워크 플로 예제를 사용하여 답을 확장하는 데주의하십시오. – cypheratheist

+0

@cypheratheist :'clone'은 이미 가져온 것이므로 복제 후 상류로 끌어 올 필요가 없습니다. – choroba

관련 문제