建立GIT遠端倉庫

2021-07-24 16:56:19 字數 2008 閱讀 4006

git是分布式版本控制系統,同乙個git倉庫,可以分布到不同的機器上。想玩遠端倉庫你肯定會想,至少需要兩台機器才能玩遠端庫是不是,但是我只有一台電腦,怎麼玩?

其實一台電腦上也是可以轉殖多個版本庫的,只要不在同乙個目錄下。不過不會有人這麼傻的在一台電腦上搞幾個遠端庫玩,因為一台電腦上搞幾個遠端庫完全沒有意義,而且硬碟掛了會導致所有庫都掛掉,玩就玩比較接近實際情況的。

實際情況往往是這樣,找一台電腦充當伺服器的角色,每天24小時開機,其他每個人都從這個「伺服器」倉庫轉殖乙份到自己的電腦上,並且各自把各自的提交推送到伺服器倉庫裡,也從伺服器倉庫中拉取別人的提交。

但是我就只有乙個本啊。。。神奇的github**這個時候就來拯救我們了。從名字就可以看出,這個**就是提供git倉庫託管服務的,所以,只要註冊乙個github賬號,就可以免費獲得git遠端倉庫。

如果你還沒有github賬號,請先註冊github賬號。註冊很簡單,只要輸入你的暱稱,乙個有效的郵箱,和你的密碼就ok了,當然我相信乙個英文**難不倒你的。

由於你的本地git倉庫和github倉庫之間的傳輸是通過ssh加密的,所以,需要一點點設定:

第1步:建立ssh key。在使用者主目錄下,看看有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個檔案,如果已經有了,可直接跳到下一步。如果沒有,開啟shell(windows下開啟git bash),建立ssh key:

ssh-keygen

-t rsa -c

"[email protected]"

你需要把郵件位址換成你自己的郵件位址,然後一路回車,使用預設值即可,由於這個key也不是用於軍事目的,所以也無需設定密碼。

如果一切順利的話,可以在使用者主目錄裡找到.ssh目錄,裡面有id_rsa和id_rsa.pub兩個檔案,這兩個就是ssh key的秘鑰對,id_rsa是私鑰,不能洩露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。

第2步:登陸github,開啟「account settings」,「ssh keys」頁面。

第3步:點「add ssh key」,填上任意title,在key文字框裡貼上id_rsa.pub檔案的內容:

第4步:點「add key」,你就應該看到已經新增的key:

為了驗證是否成功,在git bash下輸入:

ssh -t [email protected]
如果是第一次的會提示是否continue,輸入yes就會看到:you』ve successfully authenticated, but github does not provide shell access 。這就表示已成功連上github。

為什麼github需要ssh key呢?因為github需要識別出你推送的提交確實是你推送的,而不是別人冒充的,而git支援ssh協議,所以,github只要知道了你的公鑰,就可以確認只有你自己才能推送。

當然,github允許你新增多個key。只要把每台電腦的key都新增到github,就可以在每台電腦上往github推送了。在github上免費託管的git倉庫,任何人都可以看到喔(但只有你自己才能改)。所以,不要把敏感資訊放進去。

如果你不想讓別人看到git庫,有兩個辦法,乙個是交點保護費,讓github把公開的倉庫變成私有的,這樣別人就看不見了(不可讀更不可寫)。另乙個辦法是自己動手,搭乙個git伺服器,因為是你自己的git伺服器,所以別人也是看不見的。這個方法我們後面會講到的,相當簡單,開發必備。

建立git遠端倉庫

在已有的git庫中搭建新庫,並且將本地的git倉庫,上傳到遠端伺服器的git庫中,從而開始乙個新的專案 首先,在本地新建資料夾abc,進入到abc裡面,然後git init。這樣就在本地初始化了乙個git專案abc。然後,登入到遠端的git伺服器上,到gitrepo目錄下面,mkdir abc.gi...

git 建立遠端倉庫

建立ssh key ssh keygen t rsa c youremail example.com 登入github settings ssh and gpg keys add ssh key 關聯遠端庫 git remote add origin 把本地庫的所有內容推送到遠端庫 git push...

git建立遠端倉庫

git初步入門教程 本教程的目的是使用git版本控制軟體並結合github倉庫搭建自己的專案 原料 ubuntu16.04 1 安裝git sudo apt get install git 2 配置git的資訊 git config global user.name your name git co...