2017-01-19 13 views
0

私はgit repoをmasterブランチのbit-bucketに持っています。git pull from server、マージして2番目のサーバにプッシュ

今、このレポを自分のgitlabサーバーにホストしたいのですが、bitbucketのアップデートマスターブランチと2つのブランチのdevとstagを自分で作成して管理しています。今、私が望んで

enter image description here

  • ステップ1:masterdevstagから新しいブランチを作成し、のgitにプッシュ:、私のローカルマシン上Gitのクラウドから
  • ステップ2をmaster枝を引きますサーバ
  • 手順3:**dev****stag**ブランチのみで作業し、git serverの各ブランチに変更をプッシュします。
  • ステップ4:gitクラウド**master**ブランチでコードをプッシュする開発者もいれば、と**stag**ブランチで変更をマージし、3つすべてをgit serverにプッシュします。

マスターブランチにgit cloudを最新の状態にしておきたいです。 dev/stagingには、devstagで行った鉱山作業を含むmasterブランチの更新コードが含まれています。どのような流れができますか? git checkout dest stagdeststag

Note: I don't want any automatic process /hooks.

+0

リモート起点ブランチを持つ 'master'をgitクラウドから取り出し、masterブランチプッシュの新しいリモートdestをgit serverに追加します。ここで2つのブランチ' dev'と 'master'を作成します。 –

+0

期待どおりに動かないものは何ですか? – Vampire

+0

@Vampire私はgitlabで両方のブランチを作成しました。今私のローカルマシンでは、私は 'git remote -v'に2つの' origin'と 'dest'を持っています。ローカルマシン上でdevとstagブランチを取得したいのですが、 'git fetch dest && git checkout dest stag'を試しました。 ' '' * [新しいブランチ] dev - > dest/dev * [新しいブランチ] stag - > dest/stag エラー:pathspec 'dest'がgitに認識されているファイルと一致しませんでした。 エラー:pathspec 'stag'がgitに知られているファイルと一致しません '' ' 次に' git branch'を実行すると 'master'ブランチしかありません。 –

答えて

2

、あなたは以下のように手順を試すことができます:gitの雲から

1.移行(ビットバケット上のレポ)(gitlabにレポ)サーバーをgitのために。

git clone <URL for git cloud> 
git remote add dest <URL for git server> 
git checkout -b dev 
git checkout -b stag 
git push dest --all 

2. Syncは、GitのサーバーのレポにGitのクラウドマスターブランチから変更されます。 gitのクラウド上のmasterブランチが更新され

、地元のレポに、あなたはステップの下に使用することができます。

git checkout master 
git pull origin master 
git checkout dev 
git pull origin master --rebase 
git checkout stag 
git pull origin master --rebase 

今すぐすべての3つの支店がgitのクラウドから更新マスターブランチが含まれています。

+0

あなたのソリューションが動作しますが、私はそれがこの 'dev'、 ' master'、 '* stag'、 'リモコン/ DEST/dev'、 'リモコン/ DESTを示し-a'' gitのブランチを使って枝をリスト表示するとき/ master'、 'リモコン/ DEST/stag'、 'リモコン/起源/ HEAD - >起源/ master'、 'リモコン/起源/ dev'と 'リモコン/起源/ master' 起源はDEVを持っているのはなぜあまりにも? –

+1

'dev、master、stag'はローカルブランチを意味します。 'remotes/dest/dev、remotes/dest/master、remotes/dest/stag'はあなたのリモートdest(gitlab)のブランチを意味します。 'remotes/origin/devとremotes/origin/master'はあなたの遠隔起源のブランチ(git cloud)を意味します。 'remotes/origin/HEAD - > origin/master'はあなたの現在のブランチがマスターであることを意味します。 'git branch -a'は、ローカルとリモートのすべてのブランチを一覧表示します。 –

+0

私はgitクラウド上にdevブランチがあったので、確認しませんでした。当初、私はgitcloudのマスターブランチしかないと思っていました。 –

0

インデックスから更新するパスとして解釈されますが、あなたはあなたのリポジトリにそれらのパスを持っていません。あなたがしたいのはgit checkout stagまたはgit checkout -b stag dest/stagまたはgit branch stag dest/stagです。

ローカルマシン上
関連する問題