3

SVNで10年を過ごした後、私はついにGitで思い切ってやりました。サーバー上にGit、Gitolite、GitLabをセットアップし、ローカルリポジトリにコードを正常に追加し、リポジトリをコミットして複製し、コードをリポジトリにプッシュしました。ここまでは順調ですね。今EGitに入ります...

パスに次の構文を使用して、Gitリポジトリ探索ビューを使用してリポジトリのクローンを作成しました。

ssh://dexter:vaultanalyser.git

(GitLabでは、リポジトリはプロジェクトと呼ばれるので、複数のプロジェクトを含むSVNスタイルの単一の親リポジトリではなく、Eclipseプロジェクトごとに1つのリポジトリを持つことになっていると思いますか?

これにより、リポジトリが次の場所にインポートされます。

/Users/mattpainter/git/vaultanalyser

この手順で、すべてのソースを使用してEclipseプロジェクトが自動的に作成されることを期待していましたが、そうではありません。ワークスペースにあるようにターゲットディレクトリをいじってみましたが、これも機能していません。

複製されたソースをEclipse内で利用できるようにするにはどうすればよいですか?このサイトは、リポジトリと同じ名前のプロジェクトを作成すると、すべて魔法のように機能することを意味しますが、そうではありません(はい、記事はGitLabではなくGithubに関するものですが、2つは近いと思いました手元のタスクには十分です)。

次に、Eclipseでプロジェクトを作成して共有しようとしましたが、プロジェクト全体がリポジトリ内のサブフォルダーとして表示されます。リポジトリが実際にプロジェクトに類似している場合、これは私が本当に望んでいることではありません。

関連しているように見える他のStackOverflowトピックを調べましたが、これがどのように機能するかについての重要な理解がまだ不足しており、これまでのところすべてが非常に複雑に見えています。

ヘルプ?

4

3 に答える 3

3

GitLabでは、リポジトリはプロジェクトと呼ばれているので、Eclipseプロジェクトごとに1つのリポジトリを持つことになっていると思いますか?

はい。ただし、GitLabの「プロジェクト」は必ずしもEclipseのプロジェクトではありません。「 Eclipseプロジェクトディレクトリの外側でリポジトリ内のEclipse参照ディレクトリ
」に示されているように、SVN構造に従う必要はありません。

必要なのは、デフォルトのパス(Eclipseワークスペース)ではなく、リポジトリのクローンを作成した場所(「Eclipse + EGitの使用開始-混乱」で説明)にソースディレクトリを指定して、Eclipseプロジェクトを作成することだけです
このようにして、宣言した(そして、Eclipseワークスペースで参照された)Eclipseプロジェクトのファイル(.projectおよび.classpath)は、Gitリポジトリーのルートにあります。
そして、Egitはそのプロジェクトをうまく管理できます。
または、Egitを使用して直接インポートすることもできます:「Eclipse + EGit:プロジェクトをワークスペースに複製します」。


OP nullpainterが以下に報告するように:

.git/objects元の問題は、サーバー上のフォルダー内の無効なアクセス許可によって悪化しました。フォルダでを
実行すると、問題が解決しましたchmod git:git -R *

彼は以下の正しい設定について詳しく説明します。

于 2012-04-22T00:35:51.223 に答える
3

@VonCの答えを拡張するために、EGitとEclipseをうまく機能させるための手順は次のとおりです。

  1. EGitから「CloneaGitリポジトリ」を選択し、すべてのデフォルトを受け入れます。gitこれにより、ワークスペース外の親フォルダーにフォルダーが作成されます。

  2. 新しいEclipseプロジェクトを作成します。私はJavaを使用していますが、他の言語にも同様の手順があると思います。最初のダイアログで、[デフォルトの場所を使用する]のチェックを外し、代わりに手順1で作成したリポジトリフォルダーを選択します。すべてのデフォルトを受け入れます。

  3. Team > Share Project...新しいプロジェクトから選択します。Gitを選択し、[プロジェクトの親フォルダーでリポジトリを使用または作成する]にチェックマークを付けます。

これで、Eclipse内からコードとEclipseドットファイルをgitリポジトリにプッシュできます。

.git/objects(私の元の問題は、サーバー上のフォルダー内の無効なアクセス許可によって悪化しました-フォルダー上でを実行するchmod git:git -R *と問題が解決しました)

于 2012-04-22T08:13:16.370 に答える
0

コマンドラインでチェックアウトし、その上にプロジェクトをビルドします。実際、私はほとんどの操作をコマンドラインgitで行うことになります。EGitは差分を表示するのに便利ですが、コマンドラインの方がより強力で制御しやすいことがわかりました。Gitは主に、開発者に多くのパワーと制御を与えることを目的としています。

于 2012-04-22T00:32:19.027 に答える