私はこのように私のgitリポジトリにサブモジュールを追加しました:
$ git submodule add git://github.com/user/some-library some-library
いくつかの調整を行うために、そのライブラリのフォークを作成することにしました。そのサブモジュールを交換して、代わりに自分のgithubフォークを指すようにするにはどうすればよいですか?
サブモジュールは.gitmodules
に保存されます。
$ cat .gitmodules
[submodule "ext/google-maps"]
path = ext/google-maps
url = git://git.naquadah.org/google-maps.git
テキストエディタでurl
を編集する場合は、以下を実行する必要があります。
$ git submodule sync
これにより、このサブモジュールリストのコピーを含む.git/config
が更新されます([submodule]
の関連する.git/config
セクションを手動で編集することもできます)
git
システムは少し不完全に見えますが、submodule
コマンドだけでそれを行う方法があるかもしれません(例: サブモジュールを削除する手順 を参照)
それがどれくらいの期間真実かはわかりませんが、確かにかなり古いgit1.8サブモジュールにもリモコンがあります。だから、あなたはすることができます
cd some-library # this is entering the submodule
git remote -v # just to see what you have; I guess Origin only
git remote add myrepo git-URL-of-the-fork
git checkout -b my_new_idea
git Push -u myrepo my_new_idea
これで、サブモジュールは元のリポジトリではなくフォークで機能します。通常のPush, pull, rebase
などを実行できます。プルリクエストがマージされると、通常のgit remote remove myrepo
でリモートを削除できます。もちろん、サブモジュールの操作に関する他のすべての警告が適用されます(たとえば、サブモジュールの変更をスーパーモジュールの新しいコミットとしてコミットする必要があります)。