最近剛接觸Git,發現挺好用的,而且OSC還提供了免費的托管倉庫,打算把自己電腦上的代碼同步到OSC上,結果總是出現各種失敗。網上搜索的解決方案大部分是先在Git@OSC上創建項目,然后再clone到本地,而我是想把已經在本地創建好的倉庫直接push到Git@OSC上。摸索半天終於解決,分享一下我的方式。
使用范圍:已經在本地通過 git init 命令創建了本地倉庫,然后想把本地倉庫push到Git@OSC上。不對Git的安裝及使用進行詳細說明,Git詳細使用請參考http://git.oschina.net/progit/(我的所有操作是在linux上進行的,windows上通過msysgit應該也能完成 )
第一步:創建本地倉庫用於push到遠處倉庫Git@OSC上
1.隨意創建一個本地項目StudyGit,用於測試
# cd ./StudyGit // 進入項目的根目錄
2.為StudyGit項目創建本地倉庫,進入StudyGit項目根目錄,在根目錄下執行如下操作:
# git init //此時只是根據StudyGit項目目錄結構做了部分初始工作,StudyGit項目的文件還沒被最終及提交到本地倉庫。
3.將StudyGit項目中的文件提交到本地倉庫:
# git add . //將目錄下所有文件加入暫存區 # git commit -a -m “初次提交” //此時本地倉庫中已經保存有StudyGit項目的記錄了,接下來可以將本地倉庫中內容push到遠程倉庫了。
第二步:為當前用戶(我的是root用戶)創建ssh連接公鑰,並將公鑰添加在添加在個人的Git@OSC賬號下,用於向遠程服務器push時的驗證
參見其它文章,不再詳述。
第三步:為StudyGit項目添加遠程倉庫,並將本地倉庫中代碼push到遠程倉庫:
1.在Git@OSC上創建一個StudyGit的項目倉庫作為遠程倉庫使用,不一定要叫StudyGit其他名字應該也可以;
2.進入StudyGit的根目錄,為本項目添加遠程倉庫(注意一定要進入到StudyGit項目的目錄內,不一定要是根目錄,子目錄也可以):
# git remote add osc git@git.oschina.net:flan/StudyGit.git //1.”osc”是遠程倉庫地址的別名(不是遠程倉庫上項目的名字)可以隨便起,默認是origin
3.StudyGit.git 是剛剛在git.oschina.net上創建的遠程倉庫;
# git remote -v //可以查看當前項目連接的是哪個遠程倉庫地址
4.將本地倉庫push到Git@OSC上的遠程倉庫:
# git push -u osc master //”osc” 是剛剛創建的遠程倉庫名,“master”是本地倉庫的主干分支(目前也只有這一個分支,沒有其他分支)
如里有報錯誤:
To git@git.oschina.net:yangzhi/hello.git ! [rejected] master -> master (fetch first) error: failed to push some refs to 'git@git.oschina.net:yangzhi/hello.git' hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused by another repository pushin hint: to the same ref. You may want to first merge the remote changes (e.g. hint: 'git pull') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.
可以輸入:
git push -f
5、克隆代碼到本地:
git clone git@github..com:用戶名/項目名.git
=================================================================================================
其實在git上創建項目后,官方給出了很好的文檔,幫助我們在本地從零或從已有項目與遠程建立關聯:

=================================================================================================
http://guxiaojje.blog.163.com/blog/static/140942291201272110343064/
