[Git] 心得(1) Submodule, Bitbucket

- - posted in github | Comments

Bitbucker

偶然間發現這個github的競爭者Bitbucket推出了無限免費私有倉庫+無限硬碟空間,

title: “[git] 心得(1) Submodule, Bitbucker” date: 2012-02-15 23:32 comments: true

categories: git,github

Bitbucker

偶然間發現這個github的競爭者Bitbucker推出了無限免費私有倉庫+無限硬碟空間,

origin/master 於是有了一個想法:把不能說得project放到bitbucker,把好玩的open source放在github,兩者透過submodule互通! 畢竟工作上要用到大量的open source project,每次更新都要cp實在很累人。 在大部分專案都在github,而且他的介面也真的很好用的狀況下,在github上開repo還是有必要得! 而且還要能夠隨時跟原作者的repo同步!

Git submodule

要達成這個目的還是得先了解一下submodule的用法, 以下是學到的事情。

本地端起submodule

cd my_existing_repo
git add submodule git@github.com:alivedise/lab.git
git submodule init #啟動submodule
git submodule update #把submodule內容抓回本地端
git commit -a -m 'commited with submodule lab added!' #commit submodule的設定回自己的git remote

別人更新他的repo時

git submodule update
#確認是你想要得內容
git commit -a -m 'commited with submodule lab updated.' #commit submodule新的版本號回去自己的git remote

問題來了,如果別人的repo你自己會作修改該怎麼辦?

我的作法:直接fork回自己的repo,將submodule重新指向自己的repo,自己來維護這份repo。

別人跟自己同時都有更新repo時

很簡單,利用add remote->fetch->merge->commit

cd my_forked_submodule
git add remote upstream git@github.com:alivedise/lab.git
git fetch upstream
git merge origin master

Reference

Comments