web-dev-qa-db-ja.com

Subversion、Git、または同様のバージョン管理システムを使って自分のファイルの履歴を保存する

私はこれが表面的には広範な問題であるかもしれないことを認識していますが、私は人々が編集したファイルのバージョン履歴をWordPressサイトに保存するために使用するセットアップ/ワークフローの具体例を探しています。たとえば、サイトを開発するとき(そしてそれが本番になった後でさえ)、私はCSSとPHPファイルに変更を加えることがよくありますが、これらのファイルの古いバージョンに戻す素晴らしい方法はありません。私の目的のためには、ローカルの開発インストールに変更を加えてから、その変更を実際のサイトにコピーすることは、私が望むよりももっと面倒です。ライブサイト上のファイルに対する編集を追跡するためにバージョニングツールを使用する方法についての提案はありますか?

31

バージョン管理の使い方についてどれほど知っているかわかりませんが、最近SVNからGITに切り替えましたが、それが素晴らしいことがわかりました。

それはあなた次第ですが、ライブサイトのサーバーにGITがインストールされています(またはあなたを許可します)。私はライブサーバー上にもGITセットアップがあり、productionのようなものと呼ばれるブランチを実行しています。ローカルで実装や修正を終えたときはいつでも、それをproductionブランチにマージしてから、ライブサイトのサーバーにSSH接続して変更を取り込みます。変更を上書きしているかどうかわからないときなどに、ファイルをFTP経由でドラッグするのに勝ります。

私は、GITを使ったアクアプリントをする時間をとることをお勧めします(まだ行っていないのであれば)。ファイルのロードの変更や追加に関しては、SVNよりずっと簡単で面倒ではありません.svnフォルダ 至る所に )。

そう:

確かに、私はMacを使っているので、これらのどれも当てはまらないのであれば申し訳ない。

コードエディタ: Coda (Porticusを使って)Portsを通してGITをインストールしましたGit: GitX

私がすべてを新しいものにするとしたら、私はそうするでしょう:

  1. インストール Coda

  2. Porticus をインストールしてください(Portsをインストールする必要がありますが、そのページに情報があります)

  3. Porticusをインストールしたら、それを開いて "git-core"を検索し、それをインストールしてください。

  4. ダウンロードしてインストールします GitX 7-5

  5. Gitリポジトリの設定については良いガイドがあります ここ 、しかし基本は:1. Terminalを開いてください。 2.あなたのサイトを置きたい場所へのcd$: mkdir mysite && cd mysite 3. $: git initそしてそれだけです!このフォルダにファイルを追加した場合は、次の手順に進みます。

  6. GITリポジトリをローカルにセットアップしたら(上記の記事)、GitXでそのディレクトリを開くと、その他のものをコミットできるようになります。

サーバー上ですべて設定するのは少し面倒です。MediaTempleアカウントとDreamhostアカウントを持っています。どちらにもGITが用意されています。 5.のリンクは、リモートレポを追加する方法を教えてくれます。ライブサイトを公式に取り入れたいと思うまでそれをする必要はありませんか。私はすべてをローカルで動作させることをお勧めします(SVNとは異なり、GITはリモートリポジトリを必要としないので、とりあえずあなたはあなたのマシン上ですべてをboingすることができます)。

14
Joe Hoyle

私は everything でバージョン管理にSVNを使います。私はWordPress開発で行います。プラグイン開発にSVNが必要だったので、私は実際にこのように始めました。いったん始めたら、クライアントサイトでテーマやカスタムスクリプトにSVNを使い続けるのは当然の拡張でした。

プラグイン

プラグインはすでにWordPressのサーバーでホストされているので、私はローカルのWordPressインストールの/wp-content/plugins/ディレクトリに直接プラグインをチェックアウトします(私は自分の開発マシンでWAMPを実行します)。それから私は自分のローカルコピーに変更を加え、そしてそれがshowtimeの準備ができたら、リポジトリにコミットします。それはそこでのスムーズなプロセスです、アップロード/ダウンロード、そして私の変更がうまくいったことの即時検証。

テーマ

特にクライアント向けに構築する場合、テーマは少し異なります。私はローカルリポジトリを作成し(私は特にこの目的のためにハードドライブにRパーティションを持っています)、空のリポジトリを私の/wp-content/themesディレクトリに直接チェックアウトします。それから私は必要に応じて変更を加え、準備ができるまで発展させていきます。

テーマをクライアントの本番サーバーに公開する準備ができたら、リポジトリをエクスポートしてZip圧縮し、WordPress内でネイティブのThemes >> Add New機能を使用します。これはカスタムプラグイン(WordPressによってホストされていない)でも同様に機能します。

道具

私が言ったように、私はWordPressの開発インストールを実行するために私のローカルマシンでWAMPを使います。それは私のボックスでは完璧に動作し、私が特定のプロジェクトに必要なだけのWordPressのインスタンスを実行することを可能にします。

SVNには Tortoise SVN を使います。それは無料で、非常に使いやすく、そしてWindowsのファイルとコマンド構造と統合します。更新、コミット、およびエクスポートはすべて、右クリックで選択されるコマンド操作です。 "エクスポート"を使用すると、フォルダ全体を(迷惑な.svnフォルダを除く)直接任意の場所に送信できます。私は頻繁にデスクトップにエクスポートします。フォルダを圧縮することも右クリック操作であり、WordPressはアップロードを処理します。

手動でファイルを転送するのは面倒です。特に、1つのファイルを変更し続けても、すべてを変更するのではない場合があります。代わりに[すべて上書き]を選択してディレクトリ全体をFTPで転送すると、古いファイルを置き換えるのがはるかに簡単になります(そして、変更されたものと変更されなかったものを追跡する必要はありません)。これはWordPressが使用していた古い5分間のインストールのようなものです - すべてを新しいバージョンに置き換えてください。

8
EAMann

個人的には、SVN/GITをインストールして管理するのは楽しい練習だと思いますが、月額15ドルを振ることができるのであれば、Beanstalkは1ドルの価値があります。彼らはあなたのためにサーバー全体を管理します。 http://beanstalkapp.com/ FTP展開ツールは最高です。私がコミットすると、Mineは自動的にそのバージョンをステージングサーバーにデプロイします。

個人用ファイルのバージョン管理を取得するもう1つの方法は、ドロップボックスを使用することです。ファイルをドロップボックスに保存するたびにバージョンが追跡され、後で以前のバージョンに復元できます。あなたと他の開発者、またはグループがドロップボックスフォルダを共有することができます。これはトランク、マージなどは行いませんが、分散チームが1つのWebサイトで作業するのを非常に簡単にします。まったく同じファイルを一度に操作することはできません。

私たちはSVNの作業コピーをdropboxに保存しておき、時間が来たらファイルをコミットします。私のデザイナーはファイルをコミットしたりSVNを扱ったりすることはありませんので、これは妥協点です。

私はSVNが好きです。なぜならGITがそれほど素晴らしいものであることをすべてのトランキングが必要とするわけではなく、SVNの利用可能なより優れたGUIツールがあるからです。

3
Andrew

Aptana が大好きで、Subversionが統合されていて、ftp/sftpで簡単にサーバーに接続でき、ファイルをプッシュアップできます。新しいphpプロジェクトを作成して、 WordPressフォルダ全体(wp-admin、wp-includesを含む)は、テーマファイルのコード補完を受けます。

私の設定ではレポはローカルです。

2
Amit

あなたは「しかし、WordPressサイトで編集されたファイルのバージョン履歴を保存するために人々が使用するセットアップ/ワークフローの特定の例を探しています」と尋ねますが、製品についても言及します:)

あなたは上記のようにツールのリストといくつかのベストプラクティスに答えますが、私はここでワークフローに焦点を合わせます:それらは特別な言葉ではありません:

しかし、一般的な例/設定/ワークフローの場合:

初心者のために:それでツーリングから独立したCMパターンがあります。 Google on CM Patterns、そこにはたくさんの本、wikiのコミュニティもあります。 http://www.cmcrossroads.com/forums

有効なストリーム戦略(グーグルストリーム戦略)などを設定するためのガイドもあります。

大規模なSiebel、SAP、Informatica、Javaなどの工場での分散並列開発など、CM管理と比較してWordPressの導入について特別なことは何もないと思います。それは本当にほとんどデフォルトです。

足りないのは、WordPress開発用のCMplanを(まだ)(IEEE)開発している人は誰もいないということです。誰かがそれをしたら(ツールに依存しない)。要件はどんなツールでも満たすことができます。

私は計画が書かれていないのは、ほとんどすべてのWordPressの実装はまだ1人で簡単な開発 - プロダクション設定で行われているためです。たとえば、テスト環境です。

cMP計画は、言い換えればすべてのCIを識別することから始まります。アプリ、プラグイン、データベース、ドキュメント、ヘルプ、コンテンツ、設定ファイル、リリースノート(!)などを含む、WordPress実装に存在するすべてのタイプのCIのリストを作成します。 ..)。それは良いスタートです。それからあなたがCMの下に持って行きたいものを決定してください。

次に、これらのCIに何が変更を引き起こすのかを決定します。顧客からのバグ修正、または必要なアップグレードの依頼。うまくいけば、これはあなたが物事が制御されているという感覚を持っている状況につながります。

プロダクションから開発へのマージバック、およびそれを処理する方法などの決定は、この章の一部です(ここでは2つの主なパターン)(もちろん、これらの修正プログラムを最小限に抑えるようにしてください)。

後になって初めて、CMを一方の側で実行し(これにはツールの1つとしてバージョン管理が含まれています)、もう一方の側で変更管理ツールを使用します(これは問題ありません)。

私がグーグルで言う限り、誰もまだやっていないので、それはそれから始めるための最良のワークフローだと思います。最初の人がWordPress CM計画(IEEEによると)を書いたら、世界中の他のすべてのWordPress人がその計画をコピーして調整を行い、ツールのパターンを実装することができると思います。

あまりにも多くの仕事ではありません/あまりにも重いです:あなたが会社を持っているかどうかによって異なります:それは良いCM計画を持つためにあなたのお尻の大きな時間を1日節約することができます。

1
edelwater

私は共有ホストにいるので、SVNやそのようなものをインストールすることはできません。私は自宅のマシンのバージョン管理にMercurialを使っています。 Beyond CompareのFTP同期を使用して、ローカルフォルダとリモートフォルダを同期させます。

0
CAD bloke

私はgitを使っています。それは簡単です。クローン、コミット、プッシュ、プルなどの簡単なコマンドを理解するだけで準備完了です。それが基本です。

しかし、チームを調整して製品に取り組むなど、gitを使用するのであれば、それはまた別のレベルです。しかし最終的には、gitやその他のバージョン管理を使用するようになりました。たわごとが起こったときに現実的です。

0
justjoe