1.git的介紹
Git 是一個分布式版本控制系統,由 Linus Torvalds 在 2005 年為 Linux 內核開發而創建。它能夠高效地處理從小型到超大型項目的版本管理,具有以下特點:
- 分布式架構:每個開發者本地都有完整的倉庫副本
- 高效性能:快速處理大項目,操作主要在本地完成
- 強大的分支系統:輕松創建、合并和管理分支
- 數據完整性:使用 SHA-1 哈希確保數據不被篡改
2.Git 的安裝
2.1Git 的下載
這個就需要去 Git 官網下載對應系統的軟件了,下載地址為?git-scm.com或者gitforwindows.org,或者阿里鏡像
2.2 Git 的安裝
我下載的版本是阿里鏡像里的?Git-2.48.1-64-bit.exe
,接下來我們就對這個版本進行安裝工作。
2.2.1 使用許可聲明
雙擊下載后的?Git-2.48.1-64-bit.exe
,開始安裝,這個界面主要展示了 GPL 第 2 版協議1的內容,點擊 [next] 到第二步。
2.2.2 選擇安裝目錄
可點擊 “Browse…” 更換目錄,也可直接在方框里面改,我一般直接將 “C” 改為 “D”,這樣就直接安裝在 D 盤里了。點擊 [next] 到第三步。
2.2.3 選擇安裝組件
大家根據自己的需要選擇勾選。點擊 [next] 到第四步。
方框內 Git 可改為其他名字,也可點擊 “Browse...
” 選擇其他文件夾或者給"Don't create a Start Menu folder
" 打勾不要文件夾,點擊 [next] 到第五步。
2.2.5 選擇 Git 默認編輯器
Git 安裝程序里面內置了 10 種編輯器供你挑選,比如 Atom、Notepad、Notepad++、Sublime Text、Visual Studio Code、Vim 等等,默認的是 Vim ,選擇 Vim 后可以直接進行到下一步,但是 Vim 是純命令行,操作有點難度,需要學習。如果選其他編輯器,則還需要去其官網安裝后才能進行下一步。
下圖為默認編輯器 Vim.可直接點擊 [next] 到第六步。
?
2.2.6 決定初始化新項目(倉庫)的主干名字
第一種是讓 Git 自己選擇,名字是 master ,但是未來也有可能會改為其他名字;第二種是我們自行決定,默認是 main,當然,你也可以改為其他的名字。一般默認第一種,點擊 [next] 到第七步。
注: 第二個選項下面有個 NEW! ,說很多團隊已經重命名他們的默認主干名為 main . 這是因為2020 年非裔男子喬治·弗洛伊德因白人警察暴力執法慘死而掀起的 Black Lives Matter(黑人的命也是命)運動,很多人認為 master 不尊重黑人,呼吁改為 main.
?
2.2.7 調整你的 path 環境變量
第一種是僅從 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 執行文件
2.2.9 選擇HTTPS后端傳輸
2.2.10 配置行尾符號轉換
2.2.11 配置終端模擬器以與 Git Bash 一起使用
2.2.12 選擇默認的 “git pull” 行為
“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 ,可以再做選擇。
2.2.13 選擇一個憑證幫助程序
2.2.14 配置額外的選項
安裝中.....
到此就安裝結束了
3.git的簡單使用
可以查看這里git詳細使用教程_git使用方法-CSDN博客
工作流程
- 初始化或克隆倉庫::使用?
git init
?創建一個新倉庫或?git clone
?克隆一個現有倉庫。 - 修改代碼::在工作區進行文件的編寫和修改。
- 添加到暫存區::使用?
git add
?命令將需要跟蹤的文件添加到暫存區。 - 提交到版本庫::使用?
git commit
?命令將暫存區的所有更改提交到本地版本庫。 - 拉取與推送::在團隊協作時,使用?
git pull
?獲取遠程更新,使用?git push
?上傳本地的更改。
Git 基本操作
Git 的工作就是創建和保存你項目的快照及與之后的快照進行對比。
本章將對有關創建與提交你的項目快照的命令作介紹。
Git 常用的是以下 6 個命令:git clone、git push、git add?、git commit、git checkout、git pull,后面我們會詳細介紹。
說明:
- workspace:工作區
- staging area:暫存區/緩存區
- local repository:版本庫或本地倉庫
- remote repository:遠程倉庫
一個簡單的操作步驟:
$ git init $ git add . $ git commit
- git init - 初始化倉庫。
- git add . - 添加文件到暫存區。
- git commit - 將暫存區內容添加到倉庫中。
創建倉庫命令
下表列出了 git 創建倉庫的命令:
命令 | 說明 |
---|---|
git init | 初始化倉庫 |
git clone | 拷貝一份遠程倉庫,也就是下載一個項目。 |
提交與修改
Git 的工作就是創建和保存你的項目的快照及與之后的快照進行對比。
下表列出了有關創建與提交你的項目的快照的命令:
命令 | 說明 |
---|---|
git add | 添加文件到暫存區 |
git status | 查看倉庫當前的狀態,顯示有變更的文件。 |
git diff | 比較文件的不同,即暫存區和工作區的差異。 |
git difftool | 使用外部差異工具查看和比較文件的更改。 |
git range-diff | 比較兩個提交范圍之間的差異。 |
git commit | 提交暫存區到本地倉庫。 |
git reset | 回退版本。 |
git rm | 將文件從暫存區和工作區中刪除。 |
git mv | 移動或重命名工作區文件。 |
git notes | 添加注釋。 |
git checkout | 分支切換。 |
git switch?(Git 2.23 版本引入) | 更清晰地切換分支。 |
git restore?(Git 2.23 版本引入) | 恢復或撤銷文件的更改。 |
git show | 顯示 Git 對象的詳細信息。 |
提交日志
命令 | 說明 |
---|---|
git log | 查看歷史提交記錄 |
git blame <file> | 以列表形式查看指定文件的歷史修改記錄 |
git shortlog | 生成簡潔的提交日志摘要 |
git describe | 生成一個可讀的字符串,該字符串基于 Git 的標簽系統來描述當前的提交 |
遠程操作
命令 | 說明 |
---|---|
git remote | 遠程倉庫操作 |
git fetch | 從遠程獲取代碼庫 |
git pull | 下載遠程代碼并合并 |
git push | 上傳遠程代碼并合并 |
git submodule | 管理包含其他 Git 倉庫的項目 |
Git 文件狀態
Git 的文件狀態分為三種:工作目錄(Working Directory)、暫存區(Staging Area)、本地倉庫(Local Repository)。了解這些概念及其交互方式是掌握 Git 的關鍵。
工作目錄(Working Directory)
工作目錄是你在本地計算機上看到的項目文件。它是你實際操作文件的地方,包括查看、編輯、刪除和創建文件。所有對文件的更改首先發生在工作目錄中。
在工作目錄中的文件可能有以下幾種狀態:
- 未跟蹤(Untracked):新創建的文件,未被 Git 記錄。
- 已修改(Modified):已被 Git 跟蹤的文件發生了更改,但這些更改還沒有被提交到 Git 記錄中。
暫存區(Staging Area)
暫存區,也稱為索引(Index),是一個臨時存儲區域,用于保存即將提交到本地倉庫的更改。你可以選擇性地將工作目錄中的更改添加到暫存區中,這樣你可以一次提交多個文件的更改,而不必提交所有文件的更改。
- 使用?
git add <filename>
?命令將文件從工作目錄添加到暫存區。 - 使用?
git add .
?命令將當前目錄下的所有更改添加到暫存區。
git add <filename> # 添加指定文件到暫存區 git add . # 添加所有更改到暫存區
本地倉庫(Local Repository)
本地倉庫是一個隱藏在?.git
?目錄中的數據庫,用于存儲項目的所有提交歷史記錄。每次你提交更改時,Git 會將暫存區中的內容保存到本地倉庫中。
使用?git commit -m "commit message"
?命令將暫存區中的更改提交到本地倉庫。
git commit -m "commit message" # 提交暫存區的更改到本地倉庫
文件狀態的轉換流程
未跟蹤(Untracked): 新創建的文件最初是未跟蹤的。它們存在于工作目錄中,但沒有被 Git 跟蹤。
touch newfile.txt # 創建一個新文件 git status # 查看狀態,顯示 newfile.txt 未跟蹤
已跟蹤(Tracked): 通過?git add
?命令將未跟蹤的文件添加到暫存區后,文件變為已跟蹤狀態。
git add newfile.txt # 添加文件到暫存區 git status # 查看狀態,顯示 newfile.txt 在暫存區
已修改(Modified): 對已跟蹤的文件進行更改后,這些更改會顯示為已修改狀態,但這些更改還未添加到暫存區。
echo "Hello, World!" > newfile.txt # 修改文件 git status # 查看狀態,顯示 newfile.txt 已修改
已暫存(Staged): 使用?git add
?命令將修改過的文件添加到暫存區后,文件進入已暫存狀態,等待提交。
git add newfile.txt # 添加文件到暫存區 git status # 查看狀態,顯示 newfile.txt 已暫存
已提交(Committed): 使用?git commit
?命令將暫存區的更改提交到本地倉庫后,這些更改被記錄下來,文件狀態返回為已跟蹤狀態。
git commit -m "Added newfile.txt" # 提交更改 git status # 查看狀態,工作目錄干凈