GIT@OSC是國內(nèi)最大的git代碼托管平臺,支持免費(fèi)私有庫,支持SVN操作,用戶眾多。 很多開發(fā)者希望在不同的代碼托管平臺都有托管一份,這個(gè)對于git來說并不是一件麻煩的事情,而GIT@OSC也支持從Github導(dǎo)入項(xiàng)目。
這里不限于Github,也可以是Sourceforge以及bitbucket,code.taobao.org,任何基于git或者是subversion的都可以
首先我們需要在GIT@OSC上創(chuàng)建一個(gè)空項(xiàng)目。使用git的–bare參數(shù)獲取一個(gè)裸倉庫,然后通過git push --mirror命令將代碼推送到GIT@OSC。
git clone --bare https://github.com/forcegroup/iBurnMgr.git ibg.git cd ibg.git git push --mirror https://git.oschina.net/ipvb/iBurnMgr.git
git svn clone http://myhost/repo -T trunk -b branches -t tags #將svn倉庫轉(zhuǎn)為git倉庫 git remote add oscgit https://git.oschina.net/user/repo #添加remote,這個(gè)需要在頁面上建立 git push -u oscgit --all #推送到GIT@OSC
hg倉庫并沒官方的轉(zhuǎn)換支持,Github上有個(gè)hg-git: http://hg-git.github.com/ 可以使用hg來管理git倉庫,一般的將hg倉庫轉(zhuǎn)換為git倉庫的是 Fast-export 需要安裝hg,在Windows上推薦使用cygwin或者msys2
mkdir repo-git # or whatever cd repo-git git init hg-fast-export.sh -r <repo>
用戶可能在本地已經(jīng)有了一個(gè)倉庫,或者托管在Github或者托管在Bitbucket以及其他的代碼托管平臺,如果想在GIT@OSC上也放一份代碼,可以給倉庫添加一個(gè)遠(yuǎn)程地址,使之能夠推送到GIT@OSC。
第一,你先得在GIT@OSC上創(chuàng)建一個(gè)空倉庫,也就是創(chuàng)建項(xiàng)目的時(shí)候不要初始化。然后按照下面的命令就行了,比如我創(chuàng)建了一個(gè)helloworld的項(xiàng)目。
git remote -v #查看遠(yuǎn)程地址 git remote add osc https://git.oschina.net/ipvb/iBurnMgr.git #添加新的遠(yuǎn)程地址 git push -u osc --all#推送所有的本地分支git push osc --tags#推送所有的標(biāo)簽
每一次修改后,你都可以使用push命令將最新的修改提交到GIT@OSC上。
在git.oschina.net上,用戶如果已經(jīng)登陸,可以創(chuàng)建項(xiàng)目,右上角有個(gè)“+”,點(diǎn)擊后可以使用從github導(dǎo)入,出現(xiàn)如下圖的表格,點(diǎn)擊希望導(dǎo)入的項(xiàng)目即可,這里需要說明的是,只有用戶參與的項(xiàng)目才會(huì)顯示。
點(diǎn)擊導(dǎo)入項(xiàng)目之后就是漫長的等待了,畢竟眾所周知的原因,這個(gè)過程不會(huì)很快,當(dāng)然還是建議用戶將代碼早日遷移到GIT@OSC上來。
我們的開發(fā)者為用戶提供了強(qiáng)制更新的功能,如果用戶的項(xiàng)目是從Github導(dǎo)入的,在項(xiàng)目名右邊會(huì)有個(gè)Github logo,以及一個(gè)同步按鈕
點(diǎn)擊后請仔細(xì)閱讀提示,因?yàn)閺?qiáng)制同步會(huì)覆蓋倉庫。
如果你不愿意覆蓋倉庫,建議在本地將代碼拉下來,合并后再推送到GIT@OSC。