首頁 > 軟體

Git安裝詳細圖文教學(Git 安裝過程的每一個步驟)

2023-02-08 22:01:42

一、前言

最近新買了一臺 LG Gram,電腦空蕩蕩的,啥都得重頭裝,記錄一下 Git 的安裝過程,溫習溫習。

二、Git 的安裝

2.1 Git 的下載

這個就需要去 Git 官網下載對應系統的軟體了,下載地址為 git-scm.com或者gitforwindows.org
上面的 git-scm 是 Git 的官方,裡面有不同系統不同平臺的安裝包和原始碼,而 gitforwindows.org 裡只有 windows 系統的安裝包

2.2 Git 的安裝

我下載的版本是 Git-2.31.1-64-bit.exe Git-2.35.1.2-64-bit.exe,接下來我們就對這個版本進行安裝工作。

2.2.1 使用許可宣告

雙擊下載後的 Git-2.31.1-64-bit.exe Git-2.35.1.2-64-bit.exe,開始安裝,這個介面主要展示了 GPL 第 2 版協定1的內容,點選 [next] 到第二步。

2.2.2 選擇安裝目錄

可點選 “Browse…” 更換目錄,也可直接在方框裡面改,我一般直接將 “C” 改為 “D”,這樣就直接安裝在 D 盤裡了。點選 [next] 到第三步。

2.2.3 選擇安裝元件

圖中這些英文都比較簡單,我已經把大概意思翻譯出來了,大家根據自己的需要選擇勾選。點選 [next] 到第四步。

注:最後一個選項打勾的話,需要下載 Windows Terminal 配合 Git Bash使用,如圖:

2.2.4 選擇開始選單資料夾

方框內 Git 可改為其他名字,也可點選 “Browse...” 選擇其他資料夾或者給"Don't create a Start Menu folder" 打勾不要資料夾,點選 [next] 到第五步。

安裝成功後在開始選單裡的圖如下:

2.2.5 選擇 Git 預設編輯器

Git 安裝程式裡面內建了 10 種編輯器供你挑選,比如 AtomNotepadNotepad++Sublime TextVisual Studio CodeVim 等等,預設的是 Vim ,選擇 Vim 後可以直接進行到下一步,但是 Vim 是純命令列,操作有點難度,需要學習。如果選其他編輯器,則還需要去其官網安裝後才能進行下一步。

下圖為預設編輯器 Vim.可直接點選 [next] 到第六步。

如果你不想用 Vim 當預設編輯器,換一個,比如 Notepad++ ,那麼你者需要點選下面的藍色字型 " Notepad++ " 去其官網下載安裝好才能進行下一步 [next].

安裝後還要設定在我的電腦->屬性->高階系統設定->高階->環境變數->系統變數->Path->編輯新增 Notepad++ 的安裝地址,如 C:Program Filesnotepad++.
這樣才能在 Git Bash 裡面直接呼叫 Notepad++.

$ notepad++ 檔名.字尾  //在 git bash 呼叫 notepad++ 開啟檔案

新手建議使用 Notepad++Sublime Text,這兩個比 Windows 自帶的記事本功能多太多了。點選 [next] 到第六步。

2.2.6 決定初始化新專案(倉庫)的主幹名字

第一種是讓 Git 自己選擇,名字是 master ,但是未來也有可能會改為其他名字;第二種是我們自行決定,預設是 main,當然,你也可以改為其他的名字。一般預設第一種,點選 [next] 到第七步。

注: 第二個選項下面有個 NEW! ,說很多團隊已經重新命名他們的預設主幹名為 main . 這是因為2020 年非裔男子喬治·弗洛伊德因白人警察暴力執法慘死而掀起的 Black Lives Matter(黑人的命也是命)運動,很多人認為 master 不尊重黑人,呼籲改為 main.

2.2.7 調整你的 path 環境變數

翻譯如下:

Use Git from Git Bash only 
This is the most cautious choice as your PATH will not be modified at all. You w only be able to use the Git command line tools from Git Bash.
僅從 Git Bash 使用 Git
這是最謹慎的選擇,因為您的 PATH 根本不會被修改。您將只能使用 Git Bash 中的 Git 命令列工具。

Git from the command line and also from 3rd-party software
(Recommended) This option adds only some minimal Git wrappers to your PATH to avoid cluttering your environment with optional Unix tools.
You will be able to use Git from Git Bash, the Command Prompt and the Windov PowerShell as well as any third-party software looking for Git in PATH.
從命令列以及第三方軟體進行 Git
(推薦)此選項僅將一些最小的 Git 包裝器新增到PATH中,以避免使用可選的 Unix 工具使環境混亂。
您將能夠使用 Git Bash 中的 Git,命令提示字元和 Windov PowerShell 以及在 PATH 中尋找 Git 的任何第三方軟體。

Use Git and optional Unix tools from the Command Prompt 
Both Git and the optional Unix tools will be added to your PATH.
Warning: This will override Windows tools like "find"and "sort". Only use this option if you understand the implications.
使用命令提示字元中的 Git 和可選的 Unix 工具
Git 和可選的 Unix 工具都將新增到您的 PATH 中。
警告:這將覆蓋 Windows 工具,例如 "find" and "sort". 僅在瞭解其含義後使用此選項。

第一種是僅從 Git Bash 使用 Git。這個的意思就是你只能通過 Git 安裝後的 Git Bash 來使用 Git ,其他的什麼命令提示字元啊等第三方軟體都不行。

第二種是從命令列以及第三方軟體進行 Git。這個就是在第一種基礎上進行第三方支援,你將能夠從 Git Bash命令提示字元(cmd)Windows PowerShell 以及可以從 Windows 系統環境變數中尋找 Git 的任何第三方軟體中使用 Git。推薦使用這個。

第三種是從命令提示字元使用 Git 和可選的 Unix 工具。選擇這種將覆蓋 Windows 工具,如 “ find 和 sort ”。只有在瞭解其含義後才使用此選項。一句話,適合比較懂的人折騰。

2.2.8 選擇 SSH 執行檔案

翻譯如下:

Use bundled OpenSSH 
This uses ssh. exe that comes with Git.
使用捆綁的 OpenSSH
這使用的 ssh.exe 是 Git 自帶的 

Use (Tortoise) Plink 
To use PuTTY, specify the path to an existing copy of (Tortoise) Plink.exe
Set ssh. variant for Tortoise Plink 
使用 TortoisePlink (注,這是一個軟體)
要使用 PuTTY,請指定 TortoisePlink.exe 的現有副本的路徑
為 TortoisePlink 設定 ssh.variant

Use external OpenSSH 
NEW! This uses an external ssh. exe. Git will not install its own OpenSSH
(and related) binaries but use them as found on the PATH.
使用外部 OpenSSH
新!這使用外部 ssh.exe 檔案。 
Git 不會安裝自己的 OpenSSH(和相關)二進位制檔案,而是使用在環境變數 PATH 中找到的它們。

注:這是一個新功能,我 2021-4-17 安裝的 2.31.1 版本並沒有這個選項,先按預設的來吧,先填個坑,有機會再補充

2.2.9 選擇HTTPS後端傳輸

翻譯如下:

use the OpenSSL library 
Server certificates will be validated using the ca-bundle. crt file.
使用 OpenSSL 庫
伺服器證書將使用 ca-bundle.crt 檔案進行驗證。
    
Use the native Windows Secure Channel library 
Server certificates will be validated using Windows Certificate Stores.
This option also allows you to use your company's internal Root CA certificates distributed e.g. via Active Directory Domain Services.
使用本機 Windows 安全通道庫
伺服器證書將使用 Windows 證書儲存進行驗證。
此選項還允許您使用公司內部分發的內部根 CA 證書,例如通過 Active Directory 域服務。

這兩種選項有什麼區別呢?

來自https://stackoverflow.com/questions/62456484/whats-the-difference-between-openssl-and-the-native-windows-secure-channel-libr

如果在具有企業管理證書的組織中使用 Git,則將需要使用安全通道。如果你僅使用 Git 來存取公共儲存庫(例如 GitHub ),或者你的組織不管理自己的證書,那麼使用 SSL 後端(它們只是同一協定的不同實現)就可以了。

也就是說,作為普通使用者,只是用 Git 來存取 Github、GitLab 等網站,選擇前者就行了。點選 [next] 到第十步。

2.2.10 設定行尾符號轉換

Checkout Windows-style, commit Unix-style line endings 
Git will convert LF to CRLF when checking out text files. 
When committing text files, CRLF will be converted to LF. For cross-platform projects, this is the recommended setting on Windows("core. autocrif"is set to "true").
簽出 Windows 樣式,提交 Unix 樣式的行結尾
Git 簽出文字檔案時,會將 LF 轉換為 CRLF。
提交文字檔案時,CRLF 將轉換為 LF。
對於跨平臺專案,這是 Windows 上的建議設定("core.autocrif" 設定為 "true")。

Checkout as-is, commit Unix-style line endings 
Git will not perform any conversion when checking out text files. 
When committing text files, CRLF will be converted to LF. For cross-platform projects, this is the recommended setting on Unix("core.autocrif" is set to "input").
按原樣簽出,提交 Unix 樣式的行結尾
Git 在簽出文字檔案時不會執行任何轉換。提交文字檔案時,CRLF 將轉換為 LF。
對於跨平臺專案,這是在 Unix 上的建議設定("core.autocrif" 設定為 "input")。

Checkout as-is, commit as-is 
Git will not perform any conversions when checking out or committing text files. 
Choosing this option is not recommended for cross-platform projects("core. autocrif"is set to "false").
按原樣簽出,按原樣提交
Git 在簽出或提交文字檔案時不會執行任何轉換。
不建議跨平臺專案選擇此選項("core.autocrif" 設定為 "false")。

這三種選擇分別是:
簽出 Windows 樣式,提交 Unix 樣式的行結尾。
按原樣簽出,提交Unix樣式的行結尾。
按原樣簽出,按原樣提交。

那 Windows 樣式和 Unix 樣式到底有什麼區別呢?

參照 《GitHub 入門與實踐》 第 50 頁內容2

GitHub 中公開的程式碼大部分都是以 Mac 或 Linux 中的 LF(Line Feed)換行。然而,由於 Windows 中是以 CRLF(Carriage Return+ Line Feed)換行的,所以在非對應的編輯器中將不能正常顯示。
 Git 可以通過設定自動轉換這些換行符。使用 Windows 環境的各位,請選擇推薦的 “Checkout Windows-style,commit Unix-style line endings” 選項。換行符在簽出時會自動轉換為 CRLF,在提交時則會自動轉換為 LF .

上面說 Mac 、Linux、Unix 的 Line Feed ,翻譯過來就是換行符,用 “n” 表示,換行符 “n” 的 ASCII 值為10;
Windows 的是 Carriage Return+ Line Feed(回車+換行),用 “rn” 表示,回車符 “r” 的 ASCII 值為13;

這上下兩者是不一樣的。
所以這就需要轉換了,至於為什麼選第一項?
這還用問嗎?我們現在的教學就是介紹怎麼安裝 Windows 版 Git,肯定選第一項啦。

至於 “回車”(carriage return)和 “換行”(line feed)這兩個概念的來歷和區別?
參照一下 阮一峰老師部落格的部分內容

在計算機還沒有出現之前,有一種叫做電傳打字機(Teletype Model 33)的玩意,每秒鐘可以打 10 個字元。但是它有一個問題,就是打字機打完一行換行的時候,要用去 0.2 秒,正好可以打兩個字元。要是在這 0.2 秒裡面,又有新的字元傳過來,那麼這個字元將丟失。
於是,研製人員想了個辦法解決這個問題,就是在每行後面加兩個表示結束的字元。一個叫做 "回車",告訴打字機把列印頭定位在左邊界;另一個叫做 "換行",告訴打字機把紙向下移一行。

更多資料參考:

騰訊雲 - 換行符 ‘n’ 和 回車符 ‘r’ 的區別?[https://cloud.tencent.com/developer/article/1353286] 知乎 - 為什麼會用 rn 兩個字元表示換行?[https://www.zhihu.com/question/29326647]Stackoverflow - What are carriage return, linefeed, and form feed?[https://stackoverflow.com/questions/3091524/what-are-carriage-return-linefeed-and-form-feed]

點選 [next] 到第十一步。

2.2.11 設定終端模擬器以與 Git Bash 一起使用

Use MinTTY(the default terminal of MSYS2) 
Git Bash will use MinTTY as terminal emulator, which sports a resizable window
non-rectangular selections and a Unicode font.Windows console programs(such
as interactive Python) must be launched via 'winpty' to work in MinTTY.
使用 MinTTY(MSYS2的預設終端)
Git Bash 將使用 MinTTY 作為終端模擬器,該模擬器具有可調整大小的視窗非矩形選擇和 Unicode 字型。
Windows 控制檯程式(例如互動式 Python)必須通過 "winpty" 啟動才能在 MinTTY 中執行。

Use Windows' default console 
window Git will use the default console window of Windows("cmd.exe"), which works v
with Win32 console programs such as interactive Python or node. js, but has a
very limited default scroll-back,needs to be configured to use a Unicode font in 
order to display non-ASCII characters correctly, and prior to Windows 10 its 
window was not freely resizable and it only allowed rectangular text selections.<br>
使用 Windows 的預設控制檯視窗
Git 將使用 Windows 的預設控制檯視窗("cmd.exe"),該視窗可與 Win32 控制檯程式(例如互動式Python 或 
node.js)一起使用,但預設回滾非常有限,需要將其設定為使用 Unicode 字型才能正確顯示非 ASCII 字元,並且在 
Windows 10 之前,其視窗不可隨意調整大小,並且僅允許選擇矩形文字。

建議選擇第一種,MinTTY 3功能比 cmd 多,cmd 只不過 比 MinTTY 更適合處理 Windows 的一些介面問題,這個對 Git 用處不大,除此之外 Windows 的預設控制檯視窗(cmd)有很多劣勢,比如 cmd 具有非常有限的預設歷史記錄回滾堆疊和糟糕的字型編碼等等。
相比之下,MinTTY 具有可調整大小的視窗和其他有用的可設定選項,可以通過右鍵單擊的工具列來開啟它們 git-bash 。點選 [next] 到第十二步。

2.2.12 選擇預設的 “git pull” 行為

ODefault(fast-forward or merge)
This is the standard behavior ofgit pull": fast-forward the current branch to 
the fetched branch when possible, otherwise create a merge commit.
預設(快進或合併)
這是 "git pull" 的標準行為:在可能的情況下將 當前分支 快進到 獲取的分支,否則建立合併提交。

ORebase Rebase the current branch onto the fetched branch. If there are no local 
commits to rebase, this is equivalent to a fast-forward.
變基將當前分支變基到獲取的分支上。如果沒有本地提交要變基,則等同於快進。

Oonly ever fast-forward 
Fast-forward to the fetched branch. Fail if that is not possible.
只能快進快進到獲取的分支。如果不可能,則失敗。

“git pull” 是什麼意思呢?
git pull 就是獲取最新的遠端倉庫分支到本地,並與本地分支合併

上面給了三個 “git pull” 的行為:
第一個是 merge
第二個是 rebase
第三個是 直接獲取

第一種 git pull = git fetch + git merge
第二種 git pull = git fetch + git rebase
第三種 git pull = git fetch ?(這個沒試過,純屬猜測

一般預設選擇第一項,git rebase 絕大部分程式設計師都用不好或者不懂,而且風險很大,但是很多會用的人也很推崇,但是用不好就是災難。

git pull 只是拉取遠端分支並與本地分支合併,而 git fetch 只是拉取遠端分支,怎麼合併,選擇 merge 還是 rebase ,可以再做選擇。

更多參考資料:

知乎 - git pull 和 git fetch 的區別? [https://www.zhihu.com/question/38305012] 知乎 - 在開發過程中使用 git rebase 還是 git merge,優缺點分別是什麼? [https://www.zhihu.com/question/36509119]Stackoverflow - Why does git perform fast-forward merges by default? [https://stackoverflow.com/questions/2850369]Stackoverflow - In git how is fetch different than pull and how is merge different than rebase? [https://stackoverflow.com/questions/14894768/]Stackoverflow - Difference between git pull and git pull --rebase [https://stackoverflow.com/questions/18930527]

2.2.13 選擇一個憑證幫助程式

翻譯如下:

Git Credential Manager 
Use the cross-platform Git Credential Manager.
See more information about the future of Git Credential Manager here.
Git 憑證管理
使用跨平臺的 Git  憑證管理。
在此處檢視有關 Git 憑證管理未來的更多資訊。

None 
Do not use a credential helper.
不使用憑證助手。

一共兩個選項:
Git 憑證管理
不使用憑證助手

第一個選項是提供登入憑證幫助的,Git 有時需要使用者的憑據才能執行操作;例如,可能需要輸入使用者名稱密碼才能通過 HTTP 存取遠端儲存庫(GitHub,GItLab 等等)。

登入圖如下(屬於第一個選項的,老圖了),來自https://segmentfault.com/q/1010000011171685

更多參考資料:

Stackoverflow - Is Control Panel’s Credential Manager same as git’s credential helpers Credential Manager and Credential manager Core? [https://stackoverflow.com/questions/66795897]GitHub - Git Credential Manager Core [https://github.com/microsoft/Git-Credential-Manager-Core]GitHub - Git Credential Manager Core Core FAQ [https://github.com/microsoft/Git-Credential-Manager-Core/blob/master/docs/faq.md#about-the-project]Git 官網檔案 - https://git-scm.com/docs/gitcredentials [https://git-scm.com/docs/gitcredentials]

注:資料連結建議不用看,這個本來三個選項的,不知因何回退成兩個選項了,原本的那個新選項被取消了

點選 [next] 進到十四步。

2.2.14 設定額外的選項

翻譯如下:

Enable file system caching 
File system data will be read in bulk and cached in memory for certain operations("core.fscache" is set to "true"). 
This provides a significant performance boost.
啟用檔案系統快取
將批次讀取檔案系統資料並將其快取在記憶體中以進行某些操作("core.fscache” 設定為 "true")。
這可以顯著提高效能。

Enable symbolic links 
Enable symbolic links(requires the SeCreateSymbolicLink permission).
Please note that existing repositories are unaffected by this setting.
啟用符號連結
啟用符號連結(需要SeCreateSymbolicLink許可權)。
請注意,現有儲存庫不受此設定的影響。

有兩個選項:
啟用檔案系統快取
啟用符號連結

啟用檔案系統快取就是將批次讀取檔案系統資料並將其快取在記憶體中以進行某些操作,可以顯著提升效能。這個選項預設開啟。
啟用符號連結 ,符號連結是一類特殊的檔案, 其包含有一條以絕對路徑或者相對路徑的形式指向其它檔案或者目錄的參照,類似於 Windows 的快捷方式,不完全等同 類Unix(如 Linux) 下的 符號連結。因為該功能的支援需要一些條件,所以預設不開啟。

更多關於 “符號連結” 參考資料:

GitHub - Symbolic-Links [https://github.com/git-for-windows/git/wiki/Symbolic-Links]Stackoverflow - How does Git handle symbolic links? [https://stackoverflow.com/questions/954560/]Stackoverflow - What is the difference between NTFS Junction Points and Symbolic Links? [https://stackoverflow.com/questions/9042542/]

點選 [next] 到第十五步。

2.2.15 設定實驗性選項

截圖忘截了,我太難了,谷歌找張圖頂替一下

翻譯如下:

Enable experimental support for pseudo consoles.
(NEW!) This allows running native console programs like Node or Python in a Git Bash window without using winpty, 
but it still has known bugs.
啟用對偽控制檯的實驗性支援。
(新功能!) 這允許在不使用 winpty 的情況下在 Git Bash 視窗中執行諸如 Node 或 Python 之類的本機控制檯程式,
但是它仍然存在已知的 bug。

Enable experimental built-in file system monitor
(NEW!) Automatically run a built-in file system watcher, to speed up common operations such as ' git status', ' git add', ' git commit', etc in worktrees containing many files.
啟用實驗性內建檔案系統監視器
(新!)自動執行內建檔案系統監視器,以加快包含許多檔案的工作樹中的常見操作,例如 'git status'、'git add'、'git commit' 等.

這是實驗性功能,可能會有一些小錯誤之類的,建議不用開啟。
點選 [install] 進行安裝。



安裝成功

2.3 Git 的功能介紹

這是安裝成功後開始選單裡面的圖。

Git BashGit CMDGit FAQsGit GUIGit Release Note,下面我們就分別介紹一下這幾個。

2.3.1 Git Bash

Git Bash 是基於CMD的,在CMD的基礎上增添一些新的命令與功能,平時主要用這個,功能很豐富,長這樣:

2.3.2 Git CMD

Git CMD 不能說和 cmd 完全一樣,只能說一模一樣,功能少得可憐,兩者如下圖:

2.3.3 Git FAQs

Git FAQs 就是 Git Frequently Asked Questions(常問問題),存取地址:https://github.com/git-for-windows/git/wiki/FAQ

2.3.4 Git GUI

Git GUI 就是 Git 的圖形化介面,如下圖:

可以通過它快速建立新倉庫(專案),克隆存在的倉庫(專案),開啟存在的倉庫(倉庫)

2.3.4 Git Release Note

Git Release Note 就是版本說明,增加了什麼功能,修復了什麼 bug 之類的。

寫作本文參考資料:

Windows 系統 Git 安裝教學(詳解 Git 安裝過程)

[https://www.cnblogs.com/xueweisuoyong/p/11914045.html]

Git 安裝教學(詳細)

[https://www.jianshu.com/p/bebba0d8038e]

  1. GNU 作業系統 - 許可證 [http://www.gnu.org/licenses/licenses.html

  2. 大塚弘記. GitHub 入門與實踐 [M]. 鵬浩,劉斌,譯。人民郵電出版社,2017 

  3. MintTY 官網 [http://mintty.github.io/] 

到此這篇關於Git安裝詳細圖文教學(Git 安裝過程的每一個步驟)的文章就介紹到這了,更多相關Git安裝教學內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com