5

10 年以上何気なく開発してきた PHP プロジェクトで Git を使い始める時が来たと判断しました。(バージョン管理警察からの講義はやめてください!) 私の VPS では、プロジェクトが必要とするすべてを実行するために必要な複雑なセットアップが必要なためです (特に、単一コードベース、複数クライアント構造、および特殊な PDF を作成するための TeX の日本語対応インストール)。 )、ローカルの Windows ボックスに開発環境をセットアップすることはできません。しかし、私はサーバー上にプレイできるテストベッド領域を持っているので、それが私の開発領域です。現在、Filezilla を使用してサーバーにアクセスし、ファイルを直接 Notepad++ で開きます。編集内容を実際に確認する準備ができたら、保存して Filezilla にアップロードさせます。テストベッドで問題がないように見えたら、ファイルを本番コードベース領域にコピーします。うん、そのため、自分のコメント以外の変更履歴はありません。また、バグ修正と未完成の新機能を混在させないように注意する必要があります。進行中のさまざまなアップグレードに対する Git のブランチの価値がわかります。

昨日はつま先を濡らしてしまいました。最初に Github アカウントを作成し、次に (チュートリアルの推奨に従って) Git For Windows (独自の Bash と小さな GUI を備えたもの) と Kdiff3 をインストールし、Git Bash を構成するためのいくつかの指示に従いました。しかし結局、自分の Github アカウント (Github for Windows という適切な名前) とやり取りするために何か別のものをインストールする必要がありました。とにかく、Github の世界への最初の進出として簡単な作業を行いました。他の人の jQuery プラグインに機能を追加し、それを開発者と共有したかったので、彼のレポをフォークし、それを自分のマシンに複製し、ファイルを上書きしました。以前に編集してテストし、同期しました私のGithubアカウントにプルリクエストを送信しました。その最後の文の用語はすべて私にとってまったく新しいものだったので、そこまで到達したことを誇りに思いました. ;) しかし、Git ソフトウェアではなく、Github ソフトウェアのみが必要だったと思います。どのチュートリアルを信じるべきかを知るのは難しいです。

とにかく、今は自分の作品のワークフローを理解したいと思っています。それは皆さんへの私の実際の質問です。私が知る限り、マスター リポジトリを公開 Github 以外の場所に置くにはお金がかかりますし、他の人が私のコードを見ても気にしません (スパゲッティ コードで作られた私の奇妙なプロジェクトに他の人が取り組むことは期待していませんが、彼らはしたい、それは素晴らしいことです)。わかりましたが、その後は?おそらく、これらのシナリオの 1 つ、またはその他のシナリオ:

  1. リポジトリのブランチを自分の PC に複製し、ローカル ファイルを編集して、テストのためにそれらを Filezilla にアップロードします (Filezilla はローカル ファイルとリモート ファイルの関係を自動的に認識しないため、現在のワークフローよりも数回クリックする必要があります。しかし、大したことではありません)。次に、コードに満足したら、ローカルでコミットし、Github に同期し、ファイルを (どこかから - この時点ではわかりません) プロダクション エリアにコピーします。

  2. 「ローカル」Git ファイルの場所がテストベッドになるように、VPS に Linux フレーバーの Git をインストールし、PuTTY を介して Git を使用してローカル コミットを実行します。ファイル構造は単純ですが (PC にコピーする必要はまったくありません)、Git を使用するのは面倒です。

    • 私は PuTTY を頻繁に使用しているわけではありません。何らかの理由で接続が切断されることが多く、再起動する必要があります。
    • Linux のコマンド ラインは Git のネイティブ環境ですが、おそらく GUI の方が快適です (コマンド構文をすぐに忘れてしまうためです。古い頭脳だと思います)。

    また、ここでインストールした Git プログラムを使用することはなかったので、サーバーで使用するのが Git なのか Github なのかわかりません。

  3. #1 も #2 も Git/Github を使用して実稼働ファイル領域をまったく管理していないため、必要なものすべてをコピーすることを忘れないようにするために、これはおそらく良い考えです。

PHP ベースの GUI がアイデア #2 に合う可能性を調査しようとしましたが (したがって、日常の操作に PuTTY を使用する必要はありません)、そのようなツールの議論はすべて、独自の Github サービスを作成しようとしている、または「ローカル」クローン リポジトリが物理的にローカル PC 上にある (OS が何であれ xAMP が実行されている)。しかし、おそらく、私が使用した Github ソフトウェアは、それをすべて実行するのに十分であると言えます。Github のマスター パブリック リポジトリ、どこかのブランチ (Github も?)、Web サーバー上の少なくとも 2 つのファイル セット (テストベッドとプロダクション エリア)、Github ソフトウェア、Git ソフトウェア、そして、私が座っているコンピューターのキーボード/画面。

私の初心者のとりとめのないことを許してください、しかし誰かが同じような開発状況を持っているなら、あなたのワークフローは何ですか? または、私に何を提案しますか?

4

3 に答える 3

3

この問題にアプローチする 1 つの方法を次に示します。

次の 3 つのリポジトリが必要です。

  • コードを編集するためのローカル リポジトリ。[1]
  • サーバー上の裸のリモートリポジトリ。これは公開されていない場所にありますが、ssh で接続できます。[2]
  • 本番環境。[3]

実装は次のとおりです。

workstation$ cd localWorkingDirectory/
workstation$ git init
workstation$ git add .
workstation$ git commit -m 'initial commit'
workstation$ ssh login@myserver
myserver$ mkdir myrepo.git
myserver$ cd myrepo.git
myserver$ git init --bare
myserver$ exit
workstation$ cd localWorkingDirectory/
workstation$ git remote add origin login@myserver:myrepo.git
workstation$ git push origin master

ブランチでコミットするたびに、次のようにバックアップします。

workstation$ git push origin BRANCH

ブランチversion2を本番環境に移行する準備ができたら、これを行います

workstation$ git push origin version2
workstation$ ssh login@myserver
myserver$ git clone path/to/myrepo.git productionDirectory
myserver$ cd productionDirectory
myserver$ git checkout version2

大野!うまくいきません!version1 に戻した方がよいでしょう!

workstation$ ssh login@myserver
myserver$ cd productionDirectory
myserver$ git checkout version1
于 2013-04-03T14:16:56.903 に答える
1

git の使用を開始するために、github (またはその他の中央ストア) は必要ありません。特にあなたは孤独な開発者なので。Git は、サーバー コンポーネントなしで、自分のマシン上で直接実行されます (たとえば、subversion とは異なります)。ただgit init、離れてコミットを開始します。

ローカル開発環境を立ち上げて実行することを目指すべきであるというここの他のコメント投稿者に同意します。たとえ多少の手間がかかっても、それは確かに価値があります。そうすることの副作用の 1 つは、現在のハードな依存関係の一部を分離せざるを得なくなり、それによって全体的なアプリケーション アーキテクチャが改善されることです。開発環境で簡単に複製できないものは、代わりにモック サービスに置き換えることができます。

それが整ったら、スクリプト化された展開プロセスを調べます。たとえば、開発マシンのコードベースを本番サーバーと同期するシェル スクリプトを作成します。これを行うには多くの方法がありますが、非常に単純なものから始めて、オプションを修正することをお勧めします (Capistrano は 1 つのオプションです)。

于 2013-04-03T11:19:35.160 に答える
0

現在の開発環境では、カピストラーノのようなものを検討したいと思います。

ターミナルを使用するのをためらう理由は理解できますが、状況に応じて git を理解するのに役立つでしょう。コマンドを理解するのにそれほど時間はかかりません。capistrano などのシステムに接続すると、すぐに開発コードを環境に反映させることができます。

git commit -a 
git push origin develop
cap deploy:dev

私がWindowsで作業しているとき、私は通常、Sunのvirtualboxのようなものを使用して、仮想マシンでローカルに展開環境を複製しようとします. そうすれば、ローカルで開発を行いながら、潜在的な環境の問題を最小限に抑えることができます。次に、パテを使用してローカル vm に ssh します。vm とホスト OS の間の共有をセットアップし、すべての標準 IDE/エディターも機能します。これは、リモートでvpsをセットアップする必要があるよりも望ましいと思いますが、何でも機能します。

于 2013-04-03T11:10:28.930 に答える