@
一、開源
1. 什么是開源
2. 開源許可協議
開源並不意味着完全沒有限制,為了 限制使用者的使用范圍 和 保護作者的權利 ,每個開源項目都應該遵守 開源許可協議( Open Source License )。
常見的 5 種開源許可協議
各種開源協議介紹 | 菜鳥教程 (runoob.com)
-
BSD(Berkeley Software Distribution)
-
Apache Licence 2.0
-
GPL(GNU General Public License)
具有傳染性的一種開源協議,不允許修改后和衍生的代碼做為閉源的商業軟件發布和銷售
使用 GPL 的最著名的軟件項目是:Linux -
LGPL(GNU Lesser General Public License)
-
MIT(Massachusetts Institute of Technology, MIT)
是目前限制最少的協議,唯一的條件:在修改后的代碼或者發行包中,必須包含原作者的許可信息
使用 MIT 的軟件項目有:jquery、Node.js
二、 開源項目托管平台
專門用於 免費存放開源項目源代碼的網站,叫做 開源項目托管平台。
目前世界上比較出名的開源項目托管平台主要有以下 3 個:
- Github(全球最牛的開源項目托管平台,沒有之一)
- Gitlab(對代碼私有性支持較好,因此企業用戶較多)
- Gitee(又叫做碼雲,是國產的開源項目托管平台。訪問速度快、純中文界面、使用友好)
注意:以上 3 個開源項目托管平台,只能托管以 Git 管理的項目源代碼
三、 Github
1. 新建空白遠程倉庫
創建成功后,跳轉界面:
2. 遠程倉庫的兩種訪問方式
Github 上的遠程倉庫,有兩種訪問方式,分別是 HTTPS
和 SSH
。它們的區別是:
- HTTPS:零配置;但是每次訪問倉庫時,需要重復輸入 Github 的賬號和密碼才能訪問成功
- SSH:需要進行額外的配置;但是配置成功后,每次訪問倉庫時,不需重復輸入 Github 的賬號和密碼, 推薦使用 SSH 的方式訪問遠程倉庫。
3. 基於 HTTPS 將本地倉庫上傳到 Github
git push
當本地git倉庫第一次推送到github上時需要使用命令 git push -u<遠程倉庫名稱> master
之后本地git倉庫文件若有修改,先提交更新本地倉庫,在通過命令 git push
可直接推送更新遠程倉庫
4. 基於 SSH將本地倉庫上傳到 Github
① SSH key
SSH key 的作用
實現本地倉庫和 Github 之間 免登錄 的 加密數據傳輸。
SSH key 的組成
由兩部分組成,分別是:
id_rsa
(私鑰文件,存放於客戶端的電腦中即可)id_rsa.pub
(公鑰文件,需要配置到 Github 中)
生成 SSH key
-
打開 Git Bash
-
粘貼如下的命令,並將其中的
your_email@example.com
替換為注冊 Github 賬號時填寫的郵箱:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-
連續敲擊 3 次回車,即可在 C:\Users\用戶名文件夾.ssh 目錄中生成 id_rsa 和 id_rsa.pub 兩個文件
配置 SSH key
-
使用記事本打開
id_rsa.pub
文件,復制里面的文本內容 -
在瀏覽器中登錄 Github,點擊頭像 -> Settings -> SSH and GPG Keys -> New SSH key
-
將 id_rsa.pub 文件中的內容,粘貼到 Key 對應的文本框中
-
在 Title 文本框中任意填寫一個名稱,來標識這個 Key 從何而來
檢測 Github 的 SSH key 是否配置成功
- 打開打開 Git Bash,輸入命令
ssh -T git@github.com
並回車執行 - 上述的命令執行成功后,可能會看到如下的提示消息:
The authenticity of host 'github.com (IP ADDRESS)' can't be established. RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8. Are you sure you want to continue connecting (yes/no/[fingerprint])?
- 輸入
yes
之后,如果能看到類似於下面的提示消息,證明 SSH key 已經配置成功了:Warning: Permanently added 'github.com,IP ADDRESS' (RSA) to the list of known hosts. Hi username! You've successfully authenticated, but GitHub does not provide shell access.
② 基於 SHH 上傳
有關本地倉庫上傳的 " personal access token " 認證問題
5. 將遠程倉庫克隆到本地
打開 Git Bash,輸入命令 git clone 遠程倉庫地址
並回車執行,比如: