2

私はGitの初心者です。この Git チュートリアルを読んで試しています。また、こちらの Git 分岐モデルとSO に関するこの質問も読みました。

しかし、以下のケースで Git を適切に使用する方法をまだ混乱させています。

  1. 私はプロジェクトを持っていますMyProject01。私はPCから作業します、とPC01は言います
  2. PC02によると、別の PC に座っている別の開発者は、プロジェクトのMyProject01クローン (git clone、git pull など) を作成してから作業を開始します。
  3. 次に、それらの 2 つが同期されます (おそらく git pushPC01 に同期されますが、それについてはわかりません)。たとえば、別の開発者がPC2 で同じファイルを書き込んでいる間に、私はfile.prgPC1 で書き込んでいます。これらはマージされて、最終的な結果が得られます - with and done.function 1file.prgfunction 2file.prgfunction 1function 2

私は Git を完全なバージョン管理として使用していません。つまり、バージョンは 、 などのように自分で管理しますMyProject01。Gitは個々のディレクトリごとにMyProject02( ) を使用します。git initVisual FoxPro デスクトップ アプリケーション開発用のマルチ開発環境として Git を使用したいだけです。

私の場合、チュートリアルでrepo01説明されているように、クローンされたベアリポジトリを作成する必要がありますか? でしょうか?repo01MyProject01

上記の分岐モデルには適していないと思います。私を正しい道に導いてください。Windows 用の Git インストーラーを
使用しています。

[編集]
私の主な目標は、次のようなソース管理として Git を使用することです。

4

4 に答える 4

4

これが 10 か月の質問であることはわかっていますが、いずれにせよ役立つことは間違いありません。

2014 年 1 月から、VFP 9 バイナリをテキスト (prg スタイルのもの) に変換し、このテキストからバイナリを再生成できる、FoxBin2Prg と呼ばれる scctext(x).prg の新しい代替品があります。コードの差分とマージに使用でき、生成されたテキストを変更でき、変更が再生成されたバイナリに反映されます。

VFPx プロジェクトでホストされており、次の URL にあります: https://github.com/fdbozzo/foxbin2prg

実際、私は10人のメンバーのチームでPlasticSCMと統合して使用しており、ファイルをブロックする必要はなく、同じフォームとクラスでも並行開発を使用しています。

よろしくお願いします!

于 2014-06-16T21:51:37.800 に答える
2

https://github.com/sait/vfpscmを確認してください

PRG ファイルは単なるプレーン テキストです。GIT または Mercurial を透過的に使用できます。

Visual Forms (scx & sct) と Visual Classes (vcx & vct) には問題があります。これらのファイルはメモ ファイルが関連付けられた DBF テーブルであるためです。フォームを変更すると、ファイル全体が変更されます。

GIT はバイナリ ファイルを完全に処理できますが、コードの違いはわかりません。SCM の目的は何ですか。

このプログラムを作成します : https://github.com/sait/vfpscm

  1. フォームとクラスを XML に変換してリポジトリにプッシュできるようにし、フォームを変更するときに XML ファイルの数行だけを変更します。
  2. XML ファイルをフォームとクラスに再変換して、その変更を受け取ります。

したがって、通常の GIT を使用するプロセスは次のように変更されます。

  1. ファイル PRG の編集
  2. ビジュアル クラスとフォームの編集
  3. テスト
  4. バグが修正されるか、機能の準備が整ったら:
  5. クラスとフォームを XML に変換 (VfpScm を実行)
  6. ファイル PRG と XML を Git に追加します (git add)
  7. ファイルのコミット (git commit -m "messages")
  8. 変更をリポジトリにプッシュする (git push -u origin master)

あなたのチームは、これらの変更をプルして、ローカル コピーに追加する必要があります。

  1. 変更をプルする (git pull origin master)
  2. PRG と XML は Git によって上書きされます
  3. 変更されたフォームとクラスを再構築する (VfpScm を実行)

GIT は、.gitignore を使用して SCX、SCT、VCX、および VCT ファイルを無視するように構成されており、リポジトリには PRG および XML ファイルのみが含まれています。

300 のフォームと 20 のクラスを持つ大規模なプロジェクトで 5 年間 VFPSCM.exe ツールを使用してきましたが、コードを失ったことはありません。変更のログブックに変換されます。

于 2015-02-16T14:13:04.560 に答える
2

私は完全なバージョン管理として Git を使用していません。つまり、バージョンは MyProject01、MyProject02 などのように自分で管理します。Git は個々のディレクトリごとに (git init) を使用します。

古い履歴を捨てるだけなら、なぜわざわざ git を使うのでしょうか?

履歴が必要ない場合は、diff と patch も同様に役に立ちます。git では、単一のリポジトリに複数のブランチを持つことに加えて、リポジトリを複製することで複数の作業コピーを作成することもできます。複数のブランチを持つことで、以前のバージョンからの履歴を保持しながら、以前のバージョンに戻って変更を加えることができます。複数の作業コピーを持つことで、プログラムの複数のバージョンを同時に実行したり、チェックインされていないがバージョン固有のファイル (sqlite データベース ファイルなど) を保存したりできます。新しいバージョンを作成するたびに改訂履歴をリセットする必要はありません。

(おそらく PC01 への git push ですが、それについてはわかりません)

はい、できます。DVCS では任意のリポジトリから任意のリポジトリにプッシュまたはプルできるためです (これが分散型 VCS と集中型 VCS の違いです。もう 1 つの主な違いは、DVCS では作業コピーが常に完全なリポジトリでもあるということです)。特定のリビジョンの単なるスナップショットではなく履歴)。そうは言っても、ベア リポジトリをセットアップすることは、コード共有を容易にするための良い考えです。PC02 がプッシュする必要があるが、PC01 がオンラインでない場合、PC02 は PC01 がオンラインになるまで待たなければプッシュできません。常にオンラインになっているサーバー上のベア リポジトリでは、この問題は発生しません。

于 2013-08-14T07:24:44.713 に答える