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