0

私はクライアント サーバー アプリケーションを開発しており、両方のプロジェクト (クライアントとサーバー) を同じ github リポジトリの github に保存したいと考えています。私はmacosxを使用しています。Eclipse git プラグインを使用してクライアント側プロジェクトのローカル リポジトリを作成し、それを github にコミットしました。うまくいきました。

ここで、このレポに、おそらく新しいサブフォルダー内のサーバー側プロジェクトを追加したいと思います。この部分は、クライアント部分とは別のワークスペースで開発されています。Eclipse を使用してプロジェクトを共有しようとしましたが、既存のリポジトリがないと表示されます。これは、システムの 2 つの部分が異なる Eclipse IDE で開発されているためだと思います。

最初のリポジトリの下に新しいリポジトリを作成しようとしましたが、github がどちらがマスターであるかを理解できず、大混乱になりました。GitHub クライアント アプリケーションを使用して、リモート リポジトリへのコミットを管理しています。

誰かが私を助けることができますか?

ありがとう

4

3 に答える 3

2

おそらくあなたの答えには直接答えませんが、この特定の状況はsubmodulesなどの Git の機能で支配できると思います。

この場合、とにかく、2 つの異なるリポジトリをどこかにホストする必要があります。しかし、サブモジュールの助けを借りて、あるレポのファイルを別のレポのディレクトリ ツリー内に配置する必要があることを Git に伝えることができます。あなたが説明した混乱を引き起こすことなく!

たとえば、プロジェクトがリポジトリとしてホストされているgithub.com/user/Clientとします。リポジトリgithub.com/user/Serverのフォルダーに移動し、次の操作を行います。Client

git submodule add git@github.com:user/Server.git src/server

これにより、指定したアドレスのレポが指定したフォルダー (src/serverこの例では) に複製されます。

その後、変更をコミットする必要があります。多くのファイルが追加されましたが、commit diff には多くの変更はありません: そのようなリポジトリが現在サブモジュールであることを示す短い記録が特別なファイルにあるだけです。つまり、ファイルはServer実際にはClientレポに保存されず、それらへの参照のみが保存されます。これが git サブモジュールの力です。

Clientその後、レポを別の場所に複製すると、そのサブモジュールはデフォルトで取得されないことに注意してください。git submodule update --initサブモジュールを初期化するために使用する必要があります。

Serverサブモジュールへの参照は、その特定のリビジョンを指していることにも注意してください。Serverリポジトリにいくつかの変更を加えた後、Clientリポジトリに移動し、サブモジュールのディレクトリ (src/serverこの例では) に移動し、リポジトリで簡単なgit pull変更をコミットしますClient。繰り返しになりますが、巨大な差分はなく、サブモジュールへの新しい参照のみがコミットされます。

サブモジュールを含むリポジトリの例として、Vim 設定ディレクトリのリポジトリを確認できます。バンドルフォルダ内に多くのプラグインがあり、それらはすべて git サブモジュールです。GitHub はそれらを非常によく示しており、GitHub でホストされている場合は、サブモジュール リポジトリへのワンクリック ナビゲーションを簡単に実行できます。

PSこれがあなたが望むものと何の共通点もなく、単にフォルダServerを repo に追加したい場合は、クライアントClientにコピーしてディレクトリからGitのすべての痕跡を削除するだけです(ある場合)その中を削除します。これで、レポが 1 つだけになり、この多くの変更をすべてコミットして続行できます。これの欠点は、レポの履歴が完全に失われることです。プロジェクトの初期段階では大きな苦痛ではありません。ServerServer.gitServer

于 2013-01-21T16:09:41.917 に答える
0

それはそうではないと思います.gitは機能します。Git はリポジトリ用に 1 つのルート ディレクトリを必要とし、コミットするすべてのフォルダーとファイルはこの 1 つのディレクトリ内にある必要があります。

于 2013-01-21T13:28:51.420 に答える