2016-10-01 13 views
2

githubリポジトリのクローンを(自己ホストされた)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 

これは、しかし、それを持ってきたようには見えませんタグ(タグは私たちにとって重要です)。 gitの(上流としてgithubの私たち自身のタグ/枝のための私達のビットバケットサーバ)で

  1. は、どのように私は(すべて ブランチやタグを含む)のリポジトリの完全なクローンを作るのですか?
  2. クローンされたリポジトリを取得したら、 上流の (github上)のすべての最新の変更(ブランチ、タグを含む)をプルし、サーバー(bitbucket)にプッシュしますか?
+0

タグがクローンされていないことをどのように知っていますか?または、あなたは 'プッシュ - タグ 'をしたがっていますか? – choroba

+0

これは単に 'git fetch --tags'を実行することで修正できますか? – moopet

+0

@chorob "--tags"のように見えませんでした。ありがとう。 – cypheratheist

答えて

2

リポジトリのURLを変更しないでください。 2台のリモコン(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 pull upstream"と "git push -u --tags origin master"を使います。ポスト初期クローンワークフローの例で答えを広げるように気をつけてください。 – cypheratheist

+0

@cypheratheist: 'クローン'はすでにプルしているので、クローン後に上流に引っ張る必要はありません。 – choroba

関連する問題