2017-08-28 11 views
0

私はSVNからGitへの移行が任されていますが、現在の設定をそのまま使用する方法はわかりません。実稼働環境のSVNからGitへの移行

私たちには開発サーバーと運用サーバーがあり、両方とも1つのSVNリポジトリに接続されています。ローカルで変更を加え、開発サーバーに保存します。これらの変更に満足すると、開発サーバ(svn commit ...)からsvnリポジトリにコミットしてから、プロダクションサーバ(svn update ...)にコミットします。しかし、私は同じまたは同様の振る舞いをどのように反映するかは不明です。私は当初、2つのブランチ(devとmaster)を持つ単一のGitリポジトリを持つことを考えました。唯一のことは、開発サーバーと運用サーバーの両方が同期していないことです。開発サーバー上に変更を加えたファイルがたくさんあり、その逆もあります。私はこのジレンマにどのように最善を尽くすことができますか?

編集:これはあまりにも頻繁に表示されます。私の答えを改善できるように、ダウン投票の理由を明記してください。

+0

デプロイメントプロセスからバージョンコントロールを分離している場合(つまり、実稼働サーバー上のライブ作業コピーを使用するだけでなく)は簡単です。 – crashmstr

+0

@crashmstrそれは理想的でしょう。私は以前の開発者から古い設定で作業しています。 – driima

+0

バッチファイルやシェルスクリプトをサーバーにコピーするだけの場合でも、この時点で展開を別のプロセスにしたいと考えています。これにより、さまざまな配備、機能ブランチなどを扱うことができます。 – crashmstr

答えて

2

GitとSVNはどちらもバージョン管理システムですが、まったく同じように動作しません。彼らは異なるワークフローを持っています。

Gitは分散型バージョン管理システムであり、私は単一の分岐を持つ単一の共有Gitのリポジトリ、および各開発者のワークステーション上のローカルリポジトリから始まることをお勧めhttps://en.wikipedia.org/wiki/Distributed_version_control

を参照してください。共有リポジトリを複製して開発者のリポジトリを作成します。次に、あなたのワークフローに追加ステップを追加することに慣れなければなりません。単にコミットするのに使ったSVNでは、Gitで共有リポジトリに 'コミット'してから 'プッシュ'する必要があります。

ここでSVNのGitページを読んでください:https://git-scm.com/course/svn.html これはGitをSVNの観点から理解するのに役立ちます。

+0

各デベロッパーのワークスペースにローカルリポジトリがあることは、私たちが議論していたことです。私たちはさまざまな目的のために異なる環境を持つ能力を持ちたいと思っています。例えば、開発環境と運用環境。また、ステージング環境など、より多くの環境を追加する機能も必要です。この場合、devブランチにコミットしてプッシュし、それをステージングブランチおよび/またはマスター(ライブ)ブランチにリベースするのは簡単ですか? – driima

+0

各バージョンのワークスペースにローカルリポジトリが必要です。これは、分散バージョン管理が動作する唯一の方法です。異なる環境では、別のブランチを使用してください。その場合、コミットしてからdevブランチにプッシュし、*他のブランチに* merge *を展開します。 –

関連する問題