案例加解析!帶你總結Git常用操作命令
這篇文章為大家帶來了關於Git的相關知識,其中主要透過案例加解析給大家總結了git常用的操作命令,Git 是一個開源的分散式版本控制系統,用於敏捷高效地處理任何或小或大的項目,希望對大家有幫助。
推薦學習:《Git教學》
一、Git 概念
Git 是一個開源的分散式版本控制系統,用於敏捷且有效率地處理任何或小或大的項目,是目前最受歡迎的一個版本管理工具。
二、SVN與Git的最主要的區別
SVN是集中式版本控制系統,版本庫是集中放在中央伺服器的,而工作的時候,用的都是自己的電腦,所以首先要從中央伺服器哪裡得到最新的版本,然後乾活,幹完後,需要把自己做完的活推送到中央伺服器。集中式版本控制系統是必須連網才能運作,如果在區域網路還可以,頻寬夠大,速度夠快,如果在網路下,如果網路速慢的話,就納悶了。
Git是分散式版本控制系統,那麼它就沒有中央伺服器的,每個人的電腦就是一個完整的版本庫,這樣,工作的時候就不需要連網了,因為版本都是在自己的電腦上。既然每個人的電腦都有完整的版本庫,那多個人該如何協作呢?比如說自己在電腦上改了檔案A,其他人也在電腦上改了檔案A,這時,你們兩之間只要把各自的修改推送給對方,就可以互相看到對方的修改了。
三、Windows 上安裝Git
最早Git是在Linux上開發的,很長一段時間內,Git也只能在Linux和Unix系統上跑。不過,慢慢地有人把它移植到Windows了。現在,Git可以在Linux、Unix、Mac和Windows這幾大平台上正常運作了。
1. 下載Git
要使用Git
,第一步當然是安裝Git
了。從 https://git-for-windows.github.io下載(網速慢的請移步國內鏡像),然後按預設選項安裝即可。
2. 安裝步驟
下載完成後,開啟進行安裝(請依照下圖進行設定)。
3. 安裝成功
#接下來就只需要靜靜的等待安裝完成了,完成以後在桌面或任一資料夾的空白位置右鍵,出現下圖所示的兩個功能表列即表示安裝成功。
4. 設定
#安裝完後會彈出一個指令框,我們還需要做最後一步操作,設定標識符。由於 git 是分散式管理工具,所以需要設定使用者名稱和郵箱作為識別。在彈出框中輸入下面代碼即可。
git config --global user.name "Your Name"git config --global user.email "email@example.com"
注意:git config --global 參數,有了這個參數,表示你這台機器上所有的Git倉庫都會使用這個配置,當然你也可以對某個倉庫指定的不同的使用者名稱和郵箱。
四、GIt 常用指令解析
#1. 初始化
對Git 進行操作之前你得先創建一個Git 倉庫,在你需要的位置建立一個空資料夾即可。然後進入該資料夾,然後右鍵點擊空白處,點擊 Git Bash Here 對目前資料夾進行 Git 的操作。
- 初始化命令
git init
- 常用命令
cd:进入某个目录 mkdir:创建一个文件 pwd:显示当前的目录路径 鼠标选中就是复制,粘贴可以右键粘贴,也可以用使用快捷键:Shift+INS
2. 添加文件到版本库
2.1 添加到暂存区
- 在根目录新建了一个 a.txt 文件,内容为 aaa;
- 使用下面命令把 a.txt 文件添加到暂存区
- 添加到暂存区命令
git add a.txt
- 添加当前根目录下的所有文件到暂存区
git add .
2.2 提交到仓库
- 使用下面命令把暂存区的文件提交到版本库
git commit -m "双引号里面是注释——你的提交说明"
2.3 为什么 Git 添加文件需要 add、commit 两个步骤呢?
原因:commit
可以一次提交很多文件,所以你可以多次add
不同的文件
例如:
git add file1.txt #单个添加文件到暂存区git add file2.txt file3.txt #多个添加文件到暂存区git add . #添加当前文件夹下所有文件到暂存区git commit -m "add 3 files." #提交所有暂存区的文件
3 查看文件状态(检查是否有未提交文件)
3.1 状态一
使用下面命令检查当前文件状态
git status
结果:没有需要提交的文件了;
3.2 状态二
创建一个新的文件 b.txt,内容为 bbb,再来检查文件状态
结果:存在未跟踪文件没有添加到暂存区和提交到版本库;
3.3 状态三
添加 b.txt 到暂存区之后,再来检查文件状态
结果:暂存区中有一个新的 b.txt 文件没有添加到版本库中;
3.4 状态四
提交 b.txt 到版本库之后,然后把 b.txt 内容从 bbb 修改为 bbba,再来检查文件状态
结果:被改变的文件 b.txt 没有添加到暂存区且没有提交
4. 查看提交历史
4.1 先把前面修改的 b.txt 文件添加并提交
git add b.txtgit commit -m "提交修改的 b.txt 文件"
4.2 查看历史
- 到目前为止我们一共进行了3次操作,提交 a 和 b,以及修改 b,查看历史命令如下
git log
注意:使用上面命令信息多的话会进入 log 模式,想要退出,在英文输入法的前提下按 q 就可以退出了
- 如上图所示,每次提交都有版本号,时间等信息,这样看起来比较乱,出现的信息太多,看的眼花,我们可以使用下面命令得到精简版的日志记录,让历史记录一行显示
git log --pretty=oneline
- 可以对想要查看的历史日志进行约束,比如想看最近提交的一条历史日志信息
git log -1
4.3 查看提交历史命令总结
git log #查看全部历史提交记录git log --pretty=oneline #精简显示所有历史提交记录git reflog #可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)git log -p #查看全部提交历史并展示每次修改的内容git log -2 #查看最近2次提交历史(注意:后面的数字是可以自定义的,也就是说,这种写法是 git log -n 的体现)git log -p -2 #查看最近2次提交历史并展示修改的内容git log --stat #查看提交历史,并展示摘要内容(摘要会列出修改的文件以及每个文件中修改了多少行)
5. 版本回退与恢复
5.1 回退到上一个版本或上几个版本
- 首先,
Git
必须知道当前版本是哪个版本,在Git
中,用HEAD
表示当前版本,上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
。
git reset --hard HEAD^
- 查看回退后的历史版本信息
结果:从历史版本信息我们可以看出,我们已经从 “修改 b.txt” 回退到了 “提交 b.txt”,回退之后的当前版本为 “提交 b.txt”
5.2 回退到指定版本
- 我们直接复制想要回退位置的版本号,使用下面代码就可以回退到复制的版本号的位置了
git reset --hard
- 例如:我复制 “提交 a.txt 文件” 的版本号
git reset --hard 6ec9373d22d1a869b67681a39dc04df34292133b
结果:从查看的历史版本结果可以看出我们回退到了 “提交 a.txt” 版本
5.3 恢复回退的版本
- 有时候我们回退了版本后反悔了,想要返回到回退版本之前,这时我们就需要找到之前的 commit id,但是从上面的查看历史版本命令可以看出,我们找不到之前的 commit id 了,于是我们可以使用下面命令
git reflog
结果:reflog 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
- 假设我们想回退到 “提交修改的 b.txt 文件” 的位置上,也就是历史版本信息的倒数第三行,我们只需要复制 HEAD 前面的 7a42e7b,然后使用下面命令就可以了
git reset --hard 7a42e7b
结果:历史版本信息可以看出我们已经回退到了我们想要的版本
6. 查看不同版本的差异
- 当我们们修改完代码之后没有添加到暂存区提交,第二天我们忘记了昨天改了什么代码,这是我们就可以按下面步骤来看不同版本之间的差异;
例如:我们把 b.txt 文件内容修改为为 bbbaaa,然后用下面代码查看,可以看出我们修改了什么
git diff # 查看不同版本之间的文件差异
7. 修改与撤销
7.1 修改文件
推荐使用:第一次修改 -> git add -> 第二次修改 -> git add -> git commit
注意:建议每次 commit 之前先检查是否有文件没有被 add
7.2 撤销修改
git checkout -- filename
git checkout -- filename
可以丢弃工作区的修改:– 后面是一个空格
命令 git checkout -- readme.txt
意思就是,把 readme.txt
文件在工作区的修改全部撤销,这里有两种情况:
一:readme.txt
自修改后还没有被放到暂存区(git add
),现在,撤销修改就回到和版本库一模一样的状态;
二:readme.txt
已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次 git commit
或 git add
时的状态。
注意:git checkout -- file
命令中的 --
很重要,没有 --
,就变成了**“切换到另一个分支”**的命令,我们在后面的分支管理中会再次遇到 git checkout
命令
8. 删除文件/缓存
8.1 使用 rm 命令删除文件
通常直接在文件管理器中把没用的文件删了,或者用rm
命令删除,例如:删除 b.txt
git rm b.txt
删除步骤
- rm 删除文件
- rm 删除后会自动添加到暂存区,省略了手动 add 命令
- 最后进行 commit 提交,文件被删除
注意:删除步骤可以通过 reset 撤销操作撤回
8.2 删除缓存区
git rm b.txt --cached
b.txt 处于未跟踪状态,也就是从暂存区删除。
特别说明:处于未跟踪状态只是没有存在于暂存区,历史提交记录中的记录依然存在。
8.3 清空缓存
所谓的暂存区仅仅是.git目录下的一个index文件罢了,这也是为了什么被称为index(索引),当删除暂存区内容的时候,其实就是删除index文件中的内容,.git/objects目录中的内容不会被删除。
rm .git/index
9. 分支管理
9.1 分支操作命令
git branch #查看分支 git branch <name> #创建分支git checkout <name> #切换分支git checkout -b <name> #创建 + 切换分支git merge <name> #将某分支合并到当前分支git branch -d <name> #删除分支</name></name></name></name></name>
9.2 开发流程图
五、Git 命令整合
1. 设置全局用户名和邮箱
命令 | 作用 |
---|---|
git config --global user.name “Your Name” | 设置用户名 |
git config --global user.email “email@example.com” | 设置邮箱 |
2. 初始化命令
命令 | 作用 |
---|---|
git init | 初始化 git,创建 .git 文件 |
3. 常用命令
命令 | 作用 |
---|---|
cd | 进入某个目录 |
mkdir | 创建一个文件 |
pwd | 显示当前的目录路径 |
鼠标选中就是复制 | 复制 |
直接鼠标右键粘贴 / 快捷键:Shift+INS | 粘贴 |
4. 添加到暂存区
命令 | 作用 |
---|---|
git add a.txt | 添加 a.txt 到暂存区 |
git add . | 添加当前根目录下的所有文件到暂存区 |
git commit -m “双引号里面是注释——你的提交说明” | 把暂存区的文件提交到版本库(一次全部提交) |
5. 查看文件状态
命令 | 作用 |
---|---|
git status | 查看文件状态(检查是否有未提交文件) |
6. 查看提交歷史
#命令 | 作用 |
---|---|
查看全部歷史提交記錄 | |
精簡顯示所有歷史提交記錄 | |
git reflog | 可以查看所有分支的所有操作記錄(包括已刪除的commit 記錄和reset 的操作) |
git log -p | 查看全部提交歷史並展示每次修改的內容 |
git log -2 |
git log -p -2
查看最近2次提交歷史並展示修改的內容
查看提交歷史記錄,並展示摘要內容(摘要會列出修改的檔案以及每個檔案中修改了多少行) | |
---|---|
作用 | |
git reset --hard HEAD^ |
git reflog 和git reset -- hard 合併使用 |
|
git diff
查看不同版本之間的檔案差異
#9. 撤銷修改 | |
---|---|
|
|
指令 | |
git checkout – b.txt |
readme.txt 自從修改後還沒有被放到暫存區(git add
),現在,撤銷修改就回到和版本庫一模一樣的狀態;
#作用 | |
git rm b.txt | |
rm 刪除後會自動新增到暫存區,省略了手動add 指令最後進行commit 提交,檔案被刪除 | |
刪除快取區單一文件,b.txt 處於未追蹤狀態,也就是從暫存區刪除 | |
清空所有快取 | |
以上是案例加解析!帶你總結Git常用操作命令的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

要通過 Git 下載項目到本地,請按以下步驟操作:安裝 Git。導航到項目目錄。使用以下命令克隆遠程存儲庫:git clone https://github.com/username/repository-name.git

更新 git 代碼的步驟:檢出代碼:git clone https://github.com/username/repo.git獲取最新更改:git fetch合併更改:git merge origin/master推送更改(可選):git push origin master

要刪除 Git 倉庫,請執行以下步驟:確認要刪除的倉庫。本地刪除倉庫:使用 rm -rf 命令刪除其文件夾。遠程刪除倉庫:導航到倉庫設置,找到“刪除倉庫”選項,確認操作。

解決 Git 下載速度慢時可採取以下步驟:檢查網絡連接,嘗試切換連接方式。優化 Git 配置:增加 POST 緩衝區大小(git config --global http.postBuffer 524288000)、降低低速限制(git config --global http.lowSpeedLimit 1000)。使用 Git 代理(如 git-proxy 或 git-lfs-proxy)。嘗試使用不同的 Git 客戶端(如 Sourcetree 或 Github Desktop)。檢查防火

Git 代碼合併過程:拉取最新更改以避免衝突。切換到要合併的分支。發起合併,指定要合併的分支。解決合併衝突(如有)。暫存和提交合併,提供提交消息。

Git Commit 是一種命令,將文件變更記錄到 Git 存儲庫中,以保存項目當前狀態的快照。使用方法如下:添加變更到暫存區域編寫簡潔且信息豐富的提交消息保存並退出提交消息以完成提交可選:為提交添加簽名使用 git log 查看提交內容

在開發一個電商網站時,我遇到了一個棘手的問題:如何在大量商品數據中實現高效的搜索功能?傳統的數據庫搜索效率低下,用戶體驗不佳。經過一番研究,我發現了Typesense這個搜索引擎,並通過其官方PHP客戶端typesense/typesense-php解決了這個問題,大大提升了搜索性能。

如何更新本地 Git 代碼?用 git fetch 從遠程倉庫拉取最新更改。用 git merge origin/<遠程分支名稱> 將遠程變更合併到本地分支。解決因合併產生的衝突。用 git commit -m "Merge branch <遠程分支名稱>" 提交合併更改,應用更新。
