假設您的樣板爲[email protected]:foo/boilerplate.git
,並且您希望這是您的新項目[email protected]:foo/project.git
的基礎。
在github網站上,創建一個名爲project
的空存儲庫。
將您的樣板回購克隆到一個名爲project
的新目錄中。
git clone [email protected]:foo/boilerplate.git project
Git記住遠程地址,所以它可以從那裏默認推/拉。但你不想這樣做:相反,從現在開始,你想git push
推到github上的project.git
回購,而不是boilerplate.git
回購。 git remote set-url
是您如何告訴git project.git
是您的新來源(即,默認的推拉遙控器)。
cd project
git remote set-url origin [email protected]:foo/project.git
現在,git push
會推到project.git
回購。
可以選擇添加樣板作爲一個單獨的遙控器(但不是origin
,這樣你就不會意外使用它):
git remote add boilerplate [email protected]:foo/boilerplate.git
現在,當您更新的樣板,您可以合併這些變化到你的項目也是如此。 (這可以很好地工作,如果樣板文件往往不會發生很大的變化在project
回購。)
git pull boilerplate master
要回滾boilerplate.git
回購到您想它發散點,你只需要push -f
。方法有兩種:
如果您還有從你無意中按下東西github上之前樣板回購的本地副本,剛回到那裏並運行git push -f
。這會從github上的樣板庫回收中刪除「你本地沒有的工作」 - 但你現在已經在單獨的回購中獲得了這些東西,對吧? (在做git push -f
之前你應該至少考慮兩次,Git試圖幫助你避免意外刪除東西,不要意外刪除東西!)
克隆模板。使用git log
來查找您希望保留的提交,例如abc1234
。通過運行git push -f origin abc1234:master
將github repo的「主」分支重置回該提交。
要查看原點指向哪裏(以及您有哪些其他遙控器),請運行git remote -v
。
這很完美。謝謝。 – 2015-02-16 21:47:29