Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用
Git、TortoiseGit、GitHub、Gitee、GitLab 安裝與入門使用
- Git、TortoiseGit、GitHub、Gitee、GitLab 簡介
- Git
- TortoiseGit
- GitHub
- Gitee
- GitLab
- Git 進行通信的原理簡介
- 非對稱加密
- Git 的通信方式
- 實戰(zhàn)
- Git 的下載與配置
- Git 的下載與安裝
- 創(chuàng)建一個 Git 項目
- 生成密鑰對
- TortoiseGit 的下載與配置
- TortoiseGit 的下載與安裝
- 生成密鑰對
- GitHub 的使用
- 注冊賬號
- 綁定公鑰
- 創(chuàng)建 GitHub 代碼倉庫
- 下載 GitHub 代碼
- 上傳文件至 GitHub
- Gitee 的使用
- 注冊賬號
- 綁定公鑰
- 創(chuàng)建 Gitee 代碼倉庫
- 下載 Gitee 代碼
- 上傳文件至 Gitee
- GitLab 的使用
- GitLab 下載與安裝
- 總結(jié)與補充
??很多人剛開始接觸到標題的這些個名詞時并不是自愿的,畢竟為什么要費力了解自己看來完全不需要的東西。但是很遺憾,這還是企業(yè)開發(fā)的入門技術(shù),個人進行較大型的開發(fā)時使用它們也很有意義。本文簡介它們的入門知識,但它們所包含的內(nèi)容還不止如此,讀者還需要在使用時邊學(xué)習(xí)邊積累。
Git、TortoiseGit、GitHub、Gitee、GitLab 簡介
Git
??Git 是什么?在回答這個問題之前,需要知道沒有它會有哪些問題。我們習(xí)慣使用操作系統(tǒng)自帶的文件系統(tǒng)來管理文件,通常,這已經(jīng)能滿足我們的大多數(shù)需求了。不過,考慮一個更復(fù)雜但實際的問題。如果我們對一個文件進行了多次的修改、替換、刪除,然后某天我們后悔了,想找回之間的那個文件該怎么辦呢?顯然,這不是簡單通過一個操作系統(tǒng)中的回收站就可以解決的——它最多只能解決刪除的問題。Git 可以解決這個問題。它會將用戶對本目錄下所有的文件(夾)的改動都保存在本目錄下的隱藏文件夾 .git 中。在不違反邏輯的情況下,用戶可以自由切換到任何一個歷史的狀態(tài)。
??對于多人合作開發(fā),Git 能帶來極大的便利。相對于 SVN,它不需要時時刻刻聯(lián)網(wǎng),這又是它的一大優(yōu)勢。不過要注意,Git 適合用于對文本類型文件的版本管理,比方說代碼源文件。文本類型文件往往體積小,且可直接閱讀解析。如果是一種大型二進制文件,使用 Git 并不會有想象中的便利。
TortoiseGit
??雖然 Git 已經(jīng)實現(xiàn)了版本控制,不過能否實現(xiàn)與使用起來是否方便沒有必然性。如果只使用 Git,讀者將會在感受命令行無所不能之后將 Git 卸載。畢竟,沒有人愿意在沒有觀眾的情況下,將任何操作都通過輸入命令來實現(xiàn)。之所以會這樣,大概是因為 Git 的發(fā)明者與 Linux 的是同一個人。TortoiseGit 提供了 UI 界面在很大程度上解決了這個問題。對于常用的 Git 操作,只需要通過 TortoiseGit 提供的右鍵菜單和 UI 界面即可完成。不過,對于較復(fù)雜的 Git 操作,仍然需要通過在命令行輸入命令來完成。
GitHub
??Git 只是提供了版本控制的功能,但很多時候我們還需要將文件備份、在網(wǎng)絡(luò)上分享。GitHub 提供了儲存用戶上傳的文件的功能。在本質(zhì)上,它只支持通過 Git 來上傳文件。應(yīng)該說,它只是一種 Git 遠程倉庫,而 Git 只是一種文件管理傳輸工具。如果可以承受一定的成本,也可以選擇自行構(gòu)建一個自己的 Git 遠程倉庫來備份自己的重要文件,而 GitHub 只是一個全球公共的 Git 遠程倉庫。
??不過,前面提到過,Git 只是適合用于對文本類型文件的版本管理。因此,依賴 Git 的 GitHub 與普通理解中的云盤是有很大區(qū)別的。GitHub 并不適合備份自己的任何類型的文件,這不僅僅是限于網(wǎng)速與安全性。如果想要使用 GitHub 進行備份,要想想要備份的文件,它的歷史版本是否重要。
Gitee
??GitHub 的一個很大的弊端就是,它需要互聯(lián)網(wǎng),但它不是國人發(fā)明的。這意味著會有網(wǎng)絡(luò)的問題。實際上,這個問題很大。不管是不是高峰期,對于國內(nèi)的普通網(wǎng)絡(luò),五次能有一次可以打開 GitHub 主頁已經(jīng)不錯了。Gitee 就是一種 GitHub 的“國內(nèi)版本”,它又叫碼云。使用 Gitee 基本不會有網(wǎng)絡(luò)的問題,而且它還支持導(dǎo)入 GitHub 中的項目。這意味著,如果直接下載某個 GitHub 項目很慢,可以選擇先在 Gitee 中將其導(dǎo)入,然后直接在 Gitee 中下載。
GitLab
??GitLab 與前面的 GitHub、Gitee 很相似,不過它可以作為一個私有的 Git 遠程倉庫。可以使用 GitLab 作為平臺來在個人服務(wù)器上搭建一個 Git 遠程服務(wù)器,這樣在將本地 Git 項目推送到遠端時,可以不借助互聯(lián)網(wǎng),只需要局域網(wǎng),就儲存在自己的私人存儲空間中。這對企業(yè)開發(fā)是很有利的,畢竟將自己企業(yè)的數(shù)據(jù)上傳至非私有的服務(wù)器有很大的安全隱患。
??GitLab 服務(wù)器在搭建完成之后,還可以像 GitHub、Gitee 一樣在網(wǎng)頁端對其進行訪問。支持像 GitHub、Gitee 一樣注冊賬號和管理這些賬號。另外,它還支持 CI、CD 功能。
??對于 GitLab 的基礎(chǔ)功能,使用 GitLab 是免費的,如果需要更多的功能,這需要按功能強大程序支付相應(yīng)的費用。另外,GitLab 只能直接部署在指定的 Linux 上,對部署的 Linux 的硬件性能也有一定的要求。
Git 進行通信的原理簡介
非對稱加密
??信息在互聯(lián)網(wǎng)上傳輸是要加密的,這個加密是強制的,不能選擇讓自己自愿承擔風險而主動放棄加密。這就好比現(xiàn)在不能自愿承擔被盜號風險而拒絕登記手機號一樣。
??這里來講講非對稱加密。出于本文的重點,這里不作深入探究,也不講解其它的加密方式,這是密碼學(xué)的內(nèi)容。非對稱加密是通過公鑰與私鑰來進行加密與解密的,其中,公鑰與私鑰的內(nèi)容是不同的,因此稱為非對稱加密。具體來說,對于一次信息傳輸,發(fā)送方會先將此信息使用接收方的公鑰進行加密,然后發(fā)送給接收方,接收方會使用接收方的私鑰進行解密,從而保證傳輸時信息的安全。
??那么,發(fā)送方如何才能獲得接收方的公鑰呢?說明這個問題之前,先要說明的是,公鑰與私鑰的區(qū)別不僅在于,公鑰是用加密的,私鑰是用于解密的。實際上,公鑰對外公開的,而私鑰只有接收方才知道。在這個信息傳輸過程中,接收方的公鑰與私鑰都是接收方自己使用一定的算法生成的。在一開始,只有接收方知道自己的公鑰與私鑰,然后接收方將自己的公鑰首先以明文的方式傳給發(fā)送方,之后發(fā)送方才會向接收方傳輸信息。因為公鑰只能用于加密,所以不怕別人知道。比方說,如果第三者通過監(jiān)聽等手段竊取了傳輸過程中接收方的公鑰和發(fā)送方的密文,但他沒有接收方的私鑰,所以他擁有密文,他也不知道實際內(nèi)容是什么。
Git 的通信方式
??前面講過,GitHub、Gitee 都是使用 Git 進行文件傳輸?shù)拇a托管平臺,而支持很多種通信協(xié)議,如 HTTPS、SSH 等。這里重點講解通過 SSH 方式的傳輸。
??如果使用 HTTPS 進行傳輸,則密鑰的生成是由軟件自動完成的。實際上這個過程較為復(fù)雜,不過它對用戶透明,所以不需要了解其中的內(nèi)部機制。通常,這和普通的網(wǎng)頁下載方式?jīng)]有區(qū)別,通信效率會受到網(wǎng)絡(luò)的影響。
??如果使用 SSH 進行傳輸,通信效率往往高于 HTTPS,不過需要額外進行一些手動配置。SSH 通信時使用非對稱加密。在使用該協(xié)議之前,需要先手動生成自己的密鑰對,然后將自己的公鑰上傳給遠端代碼托管平臺,最后在傳輸前指定自己的私鑰才能進行傳輸。自己生成的私鑰是與當時同時生成的公鑰是配對的,因此私鑰必須妥善保存。如果之后不小心刪除了本地的私鑰,則需要再生成一對密鑰并將公鑰上傳。
實戰(zhàn)
??前面已經(jīng)給出它們的簡介。現(xiàn)在開始介紹它們的入門實戰(zhàn)使用。
Git 的下載與配置
Git 的下載與安裝
打開 Git 官網(wǎng)下載 Git。Git 的下載鏈接其實源自 GitHub。前面提到過,對于國內(nèi)普通的網(wǎng)絡(luò),此過程會很緩慢。
Git 的官網(wǎng)下載地址:https://git-scm.com/download/win
另外,Git 在 GitHub 上的開源地址是:https://github.com/git-for-windows/git/
Git 的安裝較為傻瓜,正如它的名稱一樣。對于新手來說,在下載完 Git 安裝包之后,安裝時除了注意安裝路徑之外,一直 next 即可。
在正常安裝完 Git 之后,右鍵菜單應(yīng)該會有關(guān)于 Git 的菜單項。點擊 Git Bash Here 即可進入 Git 的命令行界面:
創(chuàng)建一個 Git 項目
在命令行下輸入命令即可創(chuàng)建一個 Git 項目(代碼倉庫):
git init生成密鑰對
如果很喜歡使用 Git 命令行進行與遠程代碼平臺的交互,則需要使用 Git 生成的密鑰對。生成密鑰的方法是,先設(shè)置 用戶名 與 郵箱:
git config --global user.name "用戶名"git config --global user.email "郵箱"
其中,上面的 用戶名、郵箱 要改為自己需要設(shè)置的相應(yīng)值。
輸入以下生成密鑰對。然后一直按 ENTER 即可:
ssh-keygen -t rsa -C "郵箱"其中,上面的 郵箱 要改為自己需要設(shè)置的相應(yīng)值。
可見,上面的命令生成了密鑰對,并將其保存在了文件夾 C:\Users\Windows 用戶名\.ssh 中。打開該文件夾,可以看到兩個文件:id_rsa、id_rsa.pub。第一個文件是私鑰,第二個文件是公鑰。這兩個文件其實都是文本文件,都可以文本方式打開。前面說過,公鑰需要提供給遠程平臺,因此需要復(fù)制其中的內(nèi)容。這里,需要復(fù)制的公鑰的內(nèi)容為全文。
再次提醒:私鑰需要妥善保存。如果沒有私鑰,前面上傳至遠程平臺的公鑰等于作廢。
TortoiseGit 的下載與配置
TortoiseGit 的下載與安裝
必須先安裝 Git 之后才能安裝 TortoiseGit。
打開 TortoiseGit 的官網(wǎng)下載 TortoiseGit,網(wǎng)址:https://tortoisegit.org/download/
TortoiseGit 還提供了官方漢化包。通常,進行漢化可以減少語言的障礙,不過,此處卻建議不要使用漢化包。并不是為了本末倒置地鍛煉自己的英語,而是 TortoiseGit 中的有很多菜單選項對應(yīng)著 Git 中的命令,而命令屬于一種專有名詞,它不應(yīng)該被翻譯。在 TortoiseGit 中使用漢化會對 Git 的學(xué)習(xí)帶來干擾,所以建議不要使用漢化。
TortoiseGit 的安裝比 Git 還要傻瓜,此處不作介紹。如果同時下載了漢化包,則漢化包需要在TortoiseGit 的安裝包安裝之后才能進行安裝。在安裝完 TortoiseGit 之后,右鍵菜單應(yīng)該有了關(guān)于 TortoiseGit 的菜單項。進入 Settings 之后,應(yīng)該能看到關(guān)于 Git 的安裝信息。
生成密鑰對
在開始菜單中找到 TortoiseGit 的一個程序 PuTTYgen,并運行。
點擊 Generate 生成密鑰對。注意,需要在生成過程中不斷點擊圖中空白,以防止程序卡死。
生成成功之后,顯示出來的就是公鑰了。與前面在 Git 中一樣,需要全文復(fù)制這個公鑰,以及保存自己的私鑰。
再次提醒:私鑰需要妥善保存。如果沒有私鑰,前面上傳至遠程平臺的公鑰等于作廢。
和 Git 一樣,需要填寫 用戶名、郵箱 信息。
GitHub 的使用
注冊賬號
綁定公鑰
前面提到過,GitHub 需要綁定公鑰用于文件傳輸。方法如下:
在此處,需要粘貼前面生成的公鑰全文。注意,公鑰需要以 ssh-rsa 等作開頭。
創(chuàng)建 GitHub 代碼倉庫
只有先創(chuàng)建一個 GitHub 倉庫之后才能向 GitHub 上傳代碼。方法如下:
下載 GitHub 代碼
下載 GitHub 倉庫代碼可以使用很多方式,前面已經(jīng)提到過,如 HTTPS、SSH 等,一般選擇 SSH。因為前面已經(jīng)上傳過公鑰,所以此處可以使用 SSH 來下載。如果沒有綁定公鑰,則只能使用 HTTPS 的方式,一般來說,對于國內(nèi)網(wǎng)絡(luò)的 GitHub,下載起來會非常慢。如果選擇 SSH 的方式,則需要先復(fù)制此項目的 SSH 地址。
然后可以選擇 Git 或 TortoiseGit 來下載,這里選擇 TortoiseGit。下載 GitHub 代碼倉庫的本質(zhì)是使用的 Git 的 git clone 命令。下載的時候需要指定自己前面生成的私鑰。
下載成功的標志是顯示 Success 字樣。
上傳文件至 GitHub
如果對 Git 倉庫的文件進行了改動,則在資源管理器中會有紅色角標標識。此標識代表此改動還沒有使用 Git 來保存。
可以使用 git add、git commit 命令將此改動提交至本地 Git 記錄中。如果使用 TortoiseGit,這個操作可以變得沒有技術(shù)障礙。
如果想將本次改動更新至 GitHub 中,則需要使用 git push 命令。push 時也需要借助自己的私鑰,通常,這需要事先在本地 Git 項目中事先指定。如果這個項目源自前面從遠程倉庫的 clone,則這個私鑰將默認設(shè)為前面 clone 時的私鑰。
psuh 有很多方法,在 TortoiseGit 中,這可以接著上面的 git commit 之后來完成。
Gitee 的使用
注冊賬號
綁定公鑰
與 GitHub 一樣,這也需要上傳公鑰。
創(chuàng)建 Gitee 代碼倉庫
下載 Gitee 代碼
與 GitHub 類似的,需要先獲得該代碼倉的 SSH 地址。
復(fù)制之后的操作與前面在 GitHub 中是完全一樣的。這里從略。
上傳文件至 Gitee
GitLab 的使用
GitLab 下載與安裝
-
關(guān)于這方面的內(nèi)容,可見筆者的另一篇博客:
Linux 下 GitLab 安裝教程:
https://blog.csdn.net/wangpaiblog/article/details/122264366
總結(jié)與補充
-
關(guān)于 Git,還有很多概念與操作,如 branch、clone、fork。限于篇幅,此處不作詳解,有興趣的讀者可見筆者的另一篇博客:
fork 與 branch、clone 的區(qū)別:
https://blog.csdn.net/wangpaiblog/article/details/115879464
總結(jié)
以上是生活随笔為你收集整理的Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaFX 中的像素、分辨率与缩放比
- 下一篇: 如何反复读取同一个 InputStrea