プロジェクトのサブモジュールとして新しいリポジトリを作成したいと考えています。
通常、Github リポジトリを作成し、コマンドを使用してサブモジュールとして追加します。
git submodule add url_to_repo.git
最初に別の場所にレポを作成せずに、新しいレポをサブモジュールとして直接作成する方法はありますか (Github などのローカルでもリモートでもありません)。
プロジェクトのサブモジュールとして新しいリポジトリを作成したいと考えています。
通常、Github リポジトリを作成し、コマンドを使用してサブモジュールとして追加します。
git submodule add url_to_repo.git
最初に別の場所にレポを作成せずに、新しいレポをサブモジュールとして直接作成する方法はありますか (Github などのローカルでもリモートでもありません)。
簡単!サブsubmodule_dir
モジュール化するディレクトリの名前を指定します (まだ git の制御下にないことを前提としています)。
cd submodule_dir
git init
git add .
git commit
# on github, create the new repo, then:
git remote add origin git@github.com:your_username/your_repo_name.git
git push -u origin master
cd ..
mv submodule_dir submodule_dir_delete_me
git submodule add git@github.com:your_username/your_repo_name.git submodule_dir
あとで(幸せになったら)
rm -rf submodule_dir_delete_me
あなたの理解が正しければ、これは私がEclipseプロジェクトとワークスペースに対して頻繁に行っていることです。この構造から始めましょう。
$ find .
.
./projekt.txt
./sub1
./sub1/sub1.txt
./sub2
./sub2/sub2.txt
最初にサブモジュールとマスターを初期化します。
$ cd sub1
$ git init
$ git add *
$ git commit -m "init sub1"
$ cd ../sub2
$ git init
$ git add *
$ git commit -m "init sub2"
$ cd ..
$ git init
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# projekt.txt
# sub1/
# sub2/
これらのフォルダーを通常のフォルダーの代わりにサブモジュールとして追加するには、次のコマンドを実行し、単に./sub
代わりに相対パスを使用しますsub
$ git submodule add ./sub1
$ git submodule add ./sub2
今、それは次のように見えるはずです
$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: .gitmodules
# new file: sub1
# new file: sub2
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# projekt.txt
最後に、親フォルダーで and を実行するgit add *
と、完了です。git commit -m "init parent"
サブモジュールの 1 つでファイルを変更した場合、誰かが親リポジトリを複製したときにサブモジュールの最新バージョンを取得するために、最初にサブモジュールをコミットし、次に親リポジトリもコミットする必要があります。
方法がわかりません:サブモジュールは、定義上、別のリポジトリからのSHA1です(つまり、親リポジトリが上記のSHA1を抽出するには、他のリポジトリが存在する必要があります):保持する.gitmodules
ファイルでそのアドレスを参照する必要があります親リポジトリ。
サブモジュールは、完全に分離された内部リポジトリ内の特定のコミットオブジェクトを参照する、メインリポジトリ内のいわゆるgitlinkツリーエントリから構成されます。
submodule.<name>.url
サブモジュールリポジトリのクローンを作成できるURLを定義します。
./
これは、git-clone(1)に渡す準備ができている絶対URLか、(またはで始まる場合は../
)スーパープロジェクトのオリジンリポジトリに相対的な場所のいずれかです。
したがって、サブモジュールリポジトリをローカルで作成できますが、とにかく作成する必要があります。