2013-03-22 10 views
5

Eclipseプロジェクト用のgitリポジトリをEGitを使ってセットアップしようとしています。しかし、私はリポジトリからroot/projectディレクトリを除外することに問題があります。ことでは、私のプロジェクトは、以下の構造を有する:Eclipse - gitリポジトリからルートディレクトリを除外しますか?

ProjectDirectory 
    src 
    war 
    etc 

私は親ディレクトリProjectDirectoryを含んsrcwar、およびetcを格納するリポジトリを好きですが、ありません。これは、ワークスペース内のプロジェクトのコピーをProjectDirectory2にクローンしたい場合、2番目のプロジェクトのリポジトリは2番目のルートディレクトリProjectDirectoryを作成しようとします。残念ながら、EGitを使ってプロジェクトのリポジトリを追加しようとすると、プロジェクトフォルダ自体にTeam> Share Projectのみを使用できるように思えます。リポジトリのルートディレクトリをリポジトリから除外するとは思われませんEclipse内で

EGitを使用してリポジトリのトップディレクトリをスキップする方法に関する提案はありますか?私は、Eclipse内からすべてを行うことができることを好むだろうが、方法がない場合は、gitの外部でこの方法でリポジトリを設定する方法がありますか、それでもgit内のgitコントロールを定期的に使用できるようになりますリポジトリは最上位ディレクトリをスキップしますか?ありがとうございました。あなたは複数の理由のために、プロジェクトのルートをコミットする必要があります

答えて

2

  • あなたのプロジェクトの唯一のサブディレクトリをコミットする場合は、プロジェクトのルートの下に隠されているファイルやフォルダを欠場すること(例えば.settingsディレクトリとその他)。それらもコミットする必要があります。そうしないと、プロジェクトが情報を見逃してしまい、別のマシンで同じ結果になることはありません。
  • 同じワークスペースで同じリポジトリを2度複製しようとすると、gitブランチについての再読み込みのように聞こえるようになります。 gitでは、目の点滅後に分岐の切り替えが行われるため、異なる機能、バージョン、またはプロジェクトの異なるエディションで作業する場合はブランチを使用する必要があります。
  • ディスク上のEclipseプロジェクト名とその下にあるフォルダ名は同じである必要はありません(新しいプロジェクトを作成するときは、「デフォルトの場所を使用する」チェックボックスに注意してください)。したがって、別の名前のプロジェクトの2番目のクローンをチェックアウトすることができます。
  • プロジェクトをワークスペース(テストプロジェクトなど)に後で追加すると、それらを同じgitリポジトリに簡単に共有することはできません。追加のプロジェクトのコンテンツは、最初のプロジェクトのサブディレクトリリポジトリ。
+3

私は、.settingsのようなサブディレクトリを含めることを望んでいることを理解していますが、これは私が提案している方法でリポジトリに含めることができます。私は、私がやりたがっているように(githubのような)オンラインで見るほとんどすべてのプロジェクトがトップディレクトリを除外していることに気づいたことがある(projectRepository/projectFolder/srcではなく、githubのリポジトリはprojectRepository/src )。あなたの示唆に利点があるなら、これらのプロジェクトはすべてこのようにしていますか?早速のご返事ありがとうございます。 – golmschenk

+0

例:https://github.com/gwtbootstrap/gwt-bootstrap – golmschenk

+0

テストプロジェクトがなかったので、私は推測します。私は貢献しているオープンソースのプロジェクトでそれを正確に見てきました。また、サブディレクトリのみをコミットし、テストプロジェクトの追加レポを作成しました。しかし、複数のプロジェクトからのプル/プッシュは非常に難しくなり(テストはメインプロジェクトと同期していませんでした)、最終的にすべてのコードを再構成し、プロジェクトのルーツを確定しました:https://github.com/cgeo/ c-geo-opensource – Bananeweizen

2

もしあなたがmavenプロジェクトを持っているのなら、典型的にはegitによって作成されたプロジェクトフォルダなしでリポジトリを作成したいと思うでしょう。私の経験では、これはegitプラグインでは不可能です。 しかし、これはgitコマンドラインから簡単に行うことができます。

まず(これもegitプラグインが何をしたかである)あなたのgitフォルダにEclipseワークスペースから既存のEclipse/Mavenプロジェクトを移動:

mv myproject ~/git/ 

は、次の新しいgitリポジトリを作成

cd ~/git/myproject 
git init 

.gitignoreファイルを作成し、新しいリポジトリフォルダ(〜/ git/myproject/.gitignore)に配置します。これはaの例です。gitignoreファイル:

# ignore all bin directories 
# matches "bin" in any subfolder 
bin/ 

# ignore all target directories 
target/ 

# ignore all files ending with ~ 
*~ 

# ignore eclipse directories and project files 
.settings/ 
.project 
.classpath 

は最後に、プロジェクトこれだけ

git add * 
git commit -m "My initial commit message" 

の内容を使用して新しいリポジトリをinitalize。 これで、Eclipseを再起動し、新しいgitリポジトリからプロジェクトを再インポートできます。 eclipseのリポジトリビューに移動し、 '既存プロジェクトのインポート'を行います。

+0

glob '*'が.gitignore内のファイルと一致する場合、 'git add *'は失敗します。 –

0

私の解決策です。特にエレガントされていないが - の手順はすべて簡単です、それが動作し、約10分で行うことができます~/git/project_repo_root

  • を作成します。例えば...あなたのローカルファイルシステムに

    1. クローンリモートgitのレポいつものようにあなたのEclipseプロジェクト..例えば:~/workspace/eclipse_project_root

    2. 日食からプロジェクトを削除します(ただし、ファイルシステム・ない!)

    3. オープンファイルマネージャをして日食を移動

      mv ~/git/project_repo_root/.git ~/git/eclipse_project_root

    4. :〜/ gitの

      mv ~/workspace/eclipse_project_root ~/git/

    5. 移動Eclipseプロジェクトのルートフォルダにレポフォルダから.git /フォルダにあなただけの〜/ワークスペース/ルートから作成したプロジェクト

      シェルを使用して/ eclipse_project_root /に移動し、レポに必要なすべてのファイルに対して通常のコマンドラインコマンドを実行します。

      git add <abc>; .. commit; .. push

    6. Eclipseに戻ってGit Perspectiveに行き、 "このビューに既存のローカルGitリポジトリを追加"をクリックします。あなたが作業しているgit repoを選択すると、okと言えば、そのレポのエントリが表示されます。

    7. あなたのビューでローカルレポを見たら、あなたはそれを右クリックし、[バック(などのJava、)あなたのメインの開発パースペクティブに移動して、あなたがそこにプロジェクトが表示されるはずプロジェクトのインポート

    8. を選択することができますパッケージエクスプローラビューのルートノードのマークアップ。

      その時点で

      ~~~~~

    、あなたは(ここで説明する例では〜/ gitのために)あなただけのを移動したEclipseプロジェクトのフォルダが表示されるはずです

    私が実現これは私の答えがほしいと思うよりも冗長ですが、この特定の課題/解決策のために私はそれを行うより簡単な方法がわかりません。

    そして、上記の説明では、常にeclipseプロジェクトのルートディレクトリを含めるべきです。現実的には、いくつかのprojects/clients/etcには、git repoにルートフォルダが含まれていないことが必要です。確認することのconfigure gitのレポウィンドウ

    中> - だから、このようなソリューションが必要です時々

  • +1

    10分で私はEGitをアンインストールし、使いやすい素敵なGitクライアントを見つけることができます:D – anton1980

    +0

    このソリューションでは、gitプロジェクトはeclipseプロジェクトと同じディレクトリにあります。デフォルトでは、EGitには2つの別々のディレクトリがありますが、プロジェクトディレクトリを切り取るときにはこれを行うことは不可能です。 –

    2

    短い答えは、それはEGIT + M2E

    トリックやっている共有プロジェクトとPOSSIBLEです使用するか、

    をチェックされているプロジェクトの親フォルダにリポジトリを作成し、作ることは確かリポジトリボタンを作成]をクリックし

    これはプロジェクトルートに.gitフォルダを作成することを主な目的としています

    プロジェクトルートの上にないフォルダです。

    +0

    Shanyangqu - あなたは私の日を救った! – JavaTec

    関連する問題