鍍金池/ 教程/ Java/ 生成 SSH key
操作標簽
多人協(xié)作
解決沖突
Git 的誕生
工作區(qū)和暫存區(qū)
搭建 Git 服務(wù)器
Bug 分支
配置別名
從遠程庫克隆
分支
添加遠程庫
分支管理策略
撤銷修改
安裝 Git
管理修改
生成 SSH key
GitHub
倉庫狀態(tài)
忽略特殊文件
刪除文件
Feature 分支
創(chuàng)建與合并分支
創(chuàng)建版本庫
創(chuàng)建標簽
版本回退
集中式 vs 分布式

生成 SSH key

到目前為止,我們已經(jīng)掌握了如何在 Git 倉庫里對一個文件進行時光穿梭,你再也不用擔心文件備份或者丟失的問題了。

可是有用過集中式版本控制系統(tǒng) SVN 的童鞋會站出來說,這些功能在 SVN 里早就有了,沒看出 Git 有什么特別的地方。

沒錯,如果只是在一個倉庫里管理文件歷史,Git和SVN真沒啥區(qū)別。為了保證你現(xiàn)在所學的Git物超所值,將來絕對不會后悔,同時為了打擊已經(jīng)不幸學了 SVN 的童鞋,本章開始介紹 Git 的殺手級功能之一(注意是之一,也就是后面還有之二,之三……):遠程倉庫。

Git 是分布式版本控制系統(tǒng),同一個 Git 倉庫,可以分布到不同的機器上。怎么分布呢?最早,肯定只有一臺機器有一個原始版本庫,此后,別的機器可以“克隆”這個原始版本庫,而且每臺機器的版本庫其實都是一樣的,并沒有主次之分。

你肯定會想,至少需要兩臺機器才能玩遠程庫不是?但是我只有一臺電腦,怎么玩?

其實一臺電腦上也是可以克隆多個版本庫的,只要不在同一個目錄下。不過,現(xiàn)實生活中是不會有人這么傻的在一臺電腦上搞幾個遠程庫玩,因為一臺電腦上搞幾個遠程庫完全沒有意義,而且硬盤掛了會導(dǎo)致所有庫都掛掉,所以我也不告訴你在一臺電腦上怎么克隆多個倉庫。

實際情況往往是這樣,找一臺電腦充當服務(wù)器的角色,每天 24 小時開機,其他每個人都從這個“服務(wù)器”倉庫克隆一份到自己的電腦上,并且各自把各自的提交推送到服務(wù)器倉庫里,也從服務(wù)器倉庫中拉取別人的提交。

完全可以自己搭建一臺運行Git的服務(wù)器,不過現(xiàn)階段,為了學 Git 先搭個服務(wù)器絕對是小題大作。好在這個世界上有個叫 GitHub 的神奇的網(wǎng)站,從名字就可以看出,這個網(wǎng)站就是提供 Git 倉庫托管服務(wù)的,所以,只要注冊一個 GitHub 賬號,就可以免費獲得 Git 遠程倉庫。

在繼續(xù)閱讀后續(xù)內(nèi)容前,請自行注冊 GitHub 賬號。由于你的本地 Git 倉庫和 GitHub 倉庫之間的傳輸是通過 SSH 加密的,所以,需要一點設(shè)置:

第 1 步:創(chuàng)建 SSH Key。在用戶主目錄下,看看有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id_rsaid_rsa.pub這兩個文件,如果已經(jīng)有了,可直接跳到下一步。如果沒有,打開 Shell(Windows 下打開 Git Bash),創(chuàng)建 SSH Key:

$ ssh-keygen -t rsa -C "youremail@example.com"

你需要把郵件地址換成你自己的郵件地址,然后一路回車,使用默認值即可,由于這個 Key 也不是用于軍事目的,所以也無需設(shè)置密碼。

如果一切順利的話,可以在用戶主目錄里找到.ssh目錄,里面有 id_rsa 和 id_rsa.pub 兩個文件,這兩個就是 SSH Key 的秘鑰對,id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。

第 2 步:登陸 GitHub,打開“Account settings”,“SSH Keys”頁面:

然后,點“Add SSH Key”,填上任意 Title,在 Key 文本框里粘貼id_rsa.pub文件的內(nèi)容:

http://wiki.jikexueyuan.com/project/git-tutorial/images/git13.png" alt="" />

點“Add Key”,你就應(yīng)該看到已經(jīng)添加的 Key:

http://wiki.jikexueyuan.com/project/git-tutorial/images/git16.png" alt="" />

為什么 GitHub 需要 SSH Key 呢?因為 GitHub 需要識別出你推送的提交確實是你推送的,而不是別人冒充的,而 Git 支持 SSH 協(xié)議,所以,GitHub 只要知道了你的公鑰,就可以確認只有你自己才能推送。

當然,GitHub 允許你添加多個 Key。假定你有若干電腦,你一會兒在公司提交,一會兒在家里提交,只要把每臺電腦的 Key 都添加到 GitHub,就可以在每臺電腦上往 GitHub 推送了。

最后友情提示,在 GitHub 上免費托管的 Git 倉庫,任何人都可以看到喔(但只有你自己才能改)。所以,不要把敏感信息放進去。

如果你不想讓別人看到 Git 庫,有兩個辦法,一個是交點保護費,讓 GitHub 把公開的倉庫變成私有的,這樣別人就看不見了(不可讀更不可寫)。另一個辦法是自己動手,搭一個 Git 服務(wù)器,因為是你自己的 Git 服務(wù)器,所以別人也是看不見的。這個方法我們后面會講到的,相當簡單,公司內(nèi)部開發(fā)必備。

確保你擁有一個 GitHub 賬號后,我們就即將開始遠程倉庫的學習。

小結(jié)

“有了遠程倉庫,媽媽再也不用擔心我的硬盤了?!薄狦it 點讀機

上一篇:版本回退下一篇:多人協(xié)作