2017-11-09 18 views
1

私はgitサブモジュールのいくつかの機能が好きです。しかし、IntelliJ does not use them well。私は、私が使っている子レポのリストを指し示す親のgit repoが必要です。私は、すべての子リポジトリがファイルシステム内の兄弟フォルダにある場合、IntelliJが協力すると思います。兄弟フォルダのGitサブモジュール

私はこれを試してみました:

のgit:その後、私はこれをしなかった

The following path is ignored by one of your .gitignore files: 
../child1 Use -f if you really want to add it. 

gitのサブモジュールは、[email protected]/child1.gitが

を../child1追加はこれを手に入れましたサブモジュールadd -f [email protected]/child1.git ../child1

およびgot:

Cloning into '../child1'... 
remote: Counting objects: 3, done. 
remote: Total 3 (delta 0), reused 0 (delta 0) 
Receiving objects: 100% (3/3), done. 
Checking connectivity... done. 
fatal: Not a git repository: ../child1/../../.git/modules/../child1 

サブモジュールを兄弟フォルダとして追加する方法はありますか?

+0

を確認します。それらをサブモジュールを作成し、管理するためのバッチファイルやカスタムプログラムを使用していませんクローン。 – crashmstr

+0

私はgitがこれをサポートしていないと信じています。通常のサブモジュールを作成し、必要な場所にシンボリックリンクを作成するのはどうでしょうか? –

+0

シンボリックリンクやバッチはオプションではないと思います。このレポの一部のユーザーは、Windowsの一部のウィンドウを使用します。たぶんgradle ..しかし、それはハックのように思える。 – User1

答えて

0

ここでの問題は "兄弟"の部分ではなく、.gitignoreの部分です:親フォルダtest1にサブモジュールフォルダを作成して無視します。

また、../xxxがまだ親レポの一部であることを確認してください(そのレポのルートフォルダの上の「1つのフォルダ」ではなく)。
フォルダ../child1/../../.git/modulesが存在する必要があります。

簡単なプロセスは、メインのレポにルートフォルダに移動し、そこから追加するには、次のようになります。

cd /path/to/repo 
git submodule add -f [email protected]/child1.git test1/child1 
+0

リポジトリに.gitignoreファイルがありません。 git repoがサブフォルダにある場合、IntelliJは爆発します。私は*サブフォルダが兄弟であれば動作すると思う。また、混乱をおかけして申し訳ありませんが、エラーの1つは、私の元の質問で "test1"と言わなければなりません。 "child1"と答えるべきです(私はそれを修正するために質問を編集しました)。 – User1

+0

@ User1がそれをチェックするには、あなたのサブモジュールを追加しようとしていた場所から次のようにタイプすることができます: 'git check-ignore -v - ../ child1' – VonC

+0

クールなトリック。それは 'fatal:../child1: '../child1'がリポジトリ外にあると言う。 – User1