2017-08-12 32 views
2

私はrepoで使用したいA repoのいくつかの変更BBは私のものではありません。 Aは私のものです。gitサブモジュールrepos

Iはなかった:

git submodule add -- https://github.com/debois/elm-mdl.git external/elm-mdl 

すなわちB私は既に従って--上記のコマンドで、レポをクローニングしたelm-mdl

あります。

私はその後、実行:バックAのルートで

cd external/elm-mdl 
git checkout v9 
git checkout v9-my 
.. make some changes and commit. 
cd ../.. 

git config -f .gitmodules submodule.external/elm-mdl.branch v9-my 

└─ $ ▶ cat .gitmodules 
[submodule "external/elm-mdl"] 
    path = external/elm-mdl 
    url = https://github.com/debois/elm-mdl.git 
    branch = v9-my 

、私は私が更新またはリモートレポBでブランチを作成することはできませんとして保存されたこれらのコミットを保つことができる方法すなわちelm-mdl

私は、リモートを更新することはできません。

ashish @ 7567 ~/work/be_autonomous (master) 
└─ $ ▶ git submodule update --remote --merge 
fatal: Needed a single revision 
Unable to find current origin/v9-my revision in submodule path 'external/elm-mdl' 
ashish @ 7567 ~/work/be_autonomous (master) 

は、私は私の元のレポAにこれらのコミットを保存することはできますか?
または代替手段は何ですか? external/elm-mdlv9-myブランチを更新/プルしようとする意味

答えて

1
git config -f .gitmodules submodule.external/elm-mdl.branch v9-my 

:あなたがそのサブモジュールに変更を行うとき、あなたはそのブランチにする必要があり(およびそのサブモジュールのリモートリポジトリに新しいコミットをプッシュします)

cd external/elm-mdl 
git checkout -b v9-my 
# work 
git add . 
git commit -m "new commit in v9-my branch" 
git push -u origin v9-my 

現在のレポにプッシュできない場合は、そのレポをフォークしてください(自分で作成する)。

サブモジュールを変更してコミットしてプッシュすると、サブポールの新しいSHA1(そのgitlink)が保存されます、持っていた場合ので、私はフォークせずに動作することはできませんspecial entry in the index of the parent repo

+0

ええと.. :(..私が望んだだけのオリジナルレポにコミットを救うことができる...、について説明用 感謝まさに –

+0

@AshishNegi:フォーク – VonC

+0

えええええええええええええええええええええええええと、おもしろいものを思いついて待っていたのですが... KS –

関連する問題