1

コードベースを svn から git に移行しています。

現在の展開プロセスは、サーバー上に作業コピーを作成するために、最新の svn リビジョンを新しく作成されたディレクトリにチェックアウトする社内スクリプトを実行することです。次に、発生する必要があるすべての SQL コマンドを実行し、シンボリック リンクを現在の作業コピーから新しくチェックアウトされた作業コピーに変更します。

これは更新を処理する簡単な方法であり、問​​題が発生した場合にシンボリック リンクを変更することで、コード ベースを古いものに簡単にロールバックできます。

指定したブランチを 1 つだけ git サーバーから新しく作成したディレクトリにフェッチすることは可能ですか?それとも、リポジトリの内容全体を複製する必要がありますか?

または、コードベースを git で処理するためのより良い方法はありますか?

4

3 に答える 3

2

git の各コミットは「sha1」ID で識別されます。この ID は、ファイルの正確なスナップショットを表します。git checkoutしたがって、複数の作業コピーを作成してそれらをシンボリック リンクする代わりに、特定のコミットを行うことができます。ロールバックするには、最後の既知の適切なコミット ID をチェックアウトするだけです。チェックアウトは (SVN と比較して) 非常に高速に動作し、ネットワーク リポジトリに依存しないため (失敗することはありません)、シンボリック リンクの悪夢を忘れることをお勧めします。

より人間に優しい ID を作成するには、タグ (基本的に人間が読めるコミット ID のエイリアス) を利用できます。

于 2012-09-07T14:26:22.313 に答える
0

Git は分散リポジトリです。git clone を実行するときは、リポジトリ全体を複製する必要があります。ブランチや SHA ID だけを複製することはできません。ただし、git は非常に適切に圧縮されているため、git が原因で戦略に問題が生じることはありません。

私たちはこれを私の職場で行っており、この方法論を 5 年以上使用しています。速度が低下することはありません。1 日に何度も本番環境にデプロイできる継続的デリバリー システムがあり、デプロイは約 3 回です。数分 - データベースの移行によって異なります。

申し訳ありませんが、リポジトリ全体を複製する必要があります。

于 2012-09-08T17:33:58.787 に答える