開源中國(oschina)的Git託管

2022-01-15 05:59:55 字數 3194 閱讀 1424

對於使用cvs/svn出身的人來說,git始終有點難上手(比如我),因為概念較多,一時理不清,儘管網上已經有很多教程,其實後來我發現,要掌握它的辦法就是使用它,著手開始用它做原始碼管理,有問題就解決問題,見招拆招,這樣就成了。

本文並非將git怎麼用的,如果對git缺乏基本的了解,那這裡有乙個不錯的教程:

git教程

大家都知道,git是分布式的,如果僅僅只有乙個本地庫的話,一來不利於協同工作,二來也不夠保險,萬一本地硬碟壞了呢?所以即便是乙個人在做開發,也最好找乙個遠端的**庫來託管。可以選擇自己架乙個,但稍微有些麻煩,並且由於沒有公網固定ip位址,只能在區域網裡用用,一旦在家辦公就不輕易能檢出**;另乙個選擇就是用現有的**託管服務,最最著名的無疑是github.com,但github.com只能免費建立公共容器,也就是說所有人都能看到的容器,如果要建立私有容器只允許自己的人看到的話,要付點錢,雖然也不算貴,現在不是有種觀點「能用錢解決的就不要花時間」麼?但由於一些眾所周知的原因,github.com在大陸訪問是不是會出現些不穩定的情況。那國內有沒有類似github.com這樣的**託管服務呢?答案是肯定的,開源中國提供的就很不錯:git.oschina.net,而且,即便是建立私有容器,它也是免費的,太棒了,我目前用下來大致上ok,有時候會稍微有點卡,但都可以接受。

git的身份驗證方式和svn有些不同,svn可以使用自帶的svn協議和簡單的使用者名稱/密碼機制驗證使用者身份,而git則可使用https或ssh的連線方式,加系統使用者名稱/密碼驗證,或者通過在伺服器端儲存使用者公鑰的方式來驗證使用者身份。很明顯,oschina的做法是在伺服器端儲存使用者公鑰這種方式,因為不可能給成千上萬的使用者都建立系統帳號。伺服器端一旦有了使用者的公鑰,就可以驗證使用者身份了,(能用這個公鑰解開的密文,一定是用對應的私鑰加密的,誰有對應的私鑰,當然是對應的使用者了)所以我們要做的是將我們的公鑰上傳到伺服器上去,這樣伺服器就認我們了,根本不再需要額外的使用者名稱/密碼。我們下面也將採用ssh的方式來使用遠端git服務。

這是windows環境下使用的ssh secure shell客戶端的提示,在*nix下大致如此:

提示會給出遠端主機公鑰的「指紋」來讓你確定其真實身份(因為公鑰很長,很難用肉眼比對,所以做了個指紋摘要供使用者檢視),如果確定,就點「yes」,在*nix環境下,會將這個公鑰資訊儲存到~/.ssh/known_hosts檔案中,下次就無需再詢問你了,下面第一次連線遠端服務的時候若是出現類似的確認,就不要感到奇怪了。

好,前面只是提提原理,以便大家理解,下面言歸正傳,講講如何用oschina的git託管服務。

第一步當然是先註冊,到「去,然後……註冊過程很簡單,不用說,你提供的email就相當於是你的使用者名稱了。

註冊完登入。然後就可以建立自己的「專案」了,專案就相當於容器,比如我建立了乙個容器叫git_test。

這個時候也先別急著把你的本地容器push上來,你還沒上傳你的公鑰呢,對吧?

要上傳公鑰,得先做一對公私鑰,否則上傳什麼?使用ssh-keygen來做這個事情。(windows的話先弄個cygwin)

開啟:「點「新增公鑰」,標題隨便輸,我習慣性地寫自己電腦的名字,比如「guogangj』s mac」,公鑰的內容可以這樣獲取到:「cat ~/.ssh/id_rsa.pub」。把內容完整填入文字框中即可,注意不要隨意在中間新增換行回車空格啥的。

儲存,輸入密碼確定,這樣就把公鑰存到伺服器上去了。順便說一下,如果你想知道這個公鑰的指紋的話,可以這樣:

這樣伺服器端的配置就算完成了,測試一下:

可能的解決方案

本文當然不會告訴你具體怎麼去使用git,但在正常push和pull之前,我們還是有些東西要配置一下的。下面是配置使用者名稱和email,這是全域性配置的,不只是對乙個git容器生效,配置會被儲存在「~/.gitconfig」中。

$git config --global user.name "guogangj"

$git config --global user.email "[email protected]"

另外還可以配置一下要忽略的檔案的列表,有些檔案不必加入到git中嘛,比如生成的.o檔案,一些使用者相關的配置啥的,以xcode為例,可以生成這麼乙個檔案「~/.gitignore」,內容如下:

#exclude the build directory

build/*

#exclude temp nibs and swap files

*~.nib

*.swp

#exclude os x folder attributes

.ds_store

#exclude user-specific xcode files

*.xcworkspace

xcuserdata

再設定一下:

git config --global core.excludesfile=~/.gitignore

配置完成。使用起來還是非常簡單的,

clone

的方法:

$git clone [email protected]:guogangj/git_test.git

[email protected]:guogangj/git_test.git」這個位址可以在專案主介面上得知:

完了之後可以看看remote的選項:

$git remote -v

這樣就可以輕易的pull和push了。

開源中國(oschina)的Git託管

對於使用cvs svn出身的人來說,git始終有點難上手 比如我 因為概念較多,一時理不清,儘管網上已經有很多教程,其實後來我發現,要掌握它的辦法就是使用它,著手開始用它做原始碼管理,有問題就解決問題,見招拆招,這樣就成了。本文並非將git怎麼用的,如果對git缺乏基本的了解,那這裡有乙個不錯的教程...

git 將現有專案加入osChina

將現有專案加入oschina 在oschina中建立專案 注意不要初始化專案。其實初始化也沒有什麼問題,可以直接clone到本地,再把專案新增進去就行了,後續操作一樣的 專案現在基本為空,得到專案的遠端位址。找到現有專案,切換到現有專案目錄 呼叫初始化方法 git狀態 將現有專案下的所有檔案新增到追...

使用Git上傳本地專案到oschina

1.首先看一下自己是否有公鑰,在 我的資料 ssh公鑰 檢視,如果沒有,新增自己的ssh 公鑰 ssh key 可以讓你在你的電腦和 git osc 之間建立安全的加密連線。你可以按如下命令來生成sshkey ssh keygen t rsa c xx xx.com creates a new ss...