首頁  >  文章  >  開發工具  >  案例詳解Git常用操作指令

案例詳解Git常用操作指令

WBOY
WBOY轉載
2022-03-11 17:16:061933瀏覽

這篇文章為大家帶來了關於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. 安裝步驟

下載完成後,開啟進行安裝(請依照下圖進行設定)。
案例詳解Git常用操作指令

3. 安裝成功

接下來就只需要靜靜的等待安裝完成了,完成以後在桌面或任意資料夾的空白位置右鍵,出現下圖所示的兩個功能表列即表示安裝成功。

案例詳解Git常用操作指令

4. 設定

安裝完後會彈出一個指令框,我們還需要做最後一步操作,設定標識符。由於 git 是分散式管理工具,所以需要設定使用者名稱和郵箱作為識別。在彈出框中輸入下面代碼即可。

git config --global user.name "Your Name"git config --global user.email "email@example.com"

注意git config --global 參數,有了這個參數,表示你這台機器上所有的Git倉庫都會使用這個配置,當然你也可以對某個倉庫指定的不同的使用者名稱和郵箱。

5. 安裝TortoiseGit(可不安裝)

#主要是為了查看操作的效果
連結:https://pan.baidu.com/s/ 19lIBz4IFwurxNvzXGgTqRg
提取碼:fmte

四、GIt 常用指令解析

1. 初始化

對Git 進行操作之前你得先創建一個Git 倉庫,在你需要的位置建立一個空資料夾即可。然後進入該資料夾,然後右鍵點擊空白處,點擊 Git Bash Here 對目前資料夾進行 Git 的操作。
案例詳解Git常用操作指令
案例詳解Git常用操作指令

  • 初始化命令
git init
  • 常用命令
cd:进入某个目录
mkdir:创建一个文件
pwd:显示当前的目录路径
鼠标选中就是复制,粘贴可以右键粘贴,也可以用使用快捷键:Shift+INS

2. 添加文件到版本库

2.1 添加到暂存区

  1. 在根目录新建了一个 a.txt 文件,内容为 aaa;
  2. 使用下面命令把 a.txt 文件添加到暂存区
  • 添加到暂存区命令
git add a.txt

案例詳解Git常用操作指令

  • 添加当前根目录下的所有文件到暂存区
git add .

2.2 提交到仓库

  1. 使用下面命令把暂存区的文件提交到版本库
git commit -m "双引号里面是注释——你的提交说明"

案例詳解Git常用操作指令

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

案例詳解Git常用操作指令
结果:没有需要提交的文件了;

3.2 状态二

创建一个新的文件 b.txt,内容为 bbb,再来检查文件状态
案例詳解Git常用操作指令
结果存在未跟踪文件没有添加到暂存区和提交到版本库;

3.3 状态三

添加 b.txt 到暂存区之后,再来检查文件状态
案例詳解Git常用操作指令
结果暂存区中有一个新的 b.txt 文件没有添加到版本库中;

3.4 状态四

提交 b.txt 到版本库之后,然后把 b.txt 内容从 bbb 修改为 bbba,再来检查文件状态
案例詳解Git常用操作指令
结果被改变的文件 b.txt 没有添加到暂存区且没有提交

4. 查看提交历史

4.1 先把前面修改的 b.txt 文件添加并提交

git add b.txtgit commit -m "提交修改的 b.txt 文件"

案例詳解Git常用操作指令

4.2 查看历史

  1. 到目前为止我们一共进行了3次操作,提交 a 和 b,以及修改 b,查看历史命令如下
git log

案例詳解Git常用操作指令
注意使用上面命令信息多的话会进入 log 模式,想要退出,在英文输入法的前提下按 q 就可以退出了

  1. 如上图所示,每次提交都有版本号,时间等信息,这样看起来比较乱,出现的信息太多,看的眼花,我们可以使用下面命令得到精简版的日志记录,让历史记录一行显示
git log --pretty=oneline

案例詳解Git常用操作指令

  1. 可以对想要查看的历史日志进行约束,比如想看最近提交的一条历史日志信息
git log -1

案例詳解Git常用操作指令

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 回退到上一个版本或上几个版本

  1. 首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
git reset --hard HEAD^

案例詳解Git常用操作指令

  1. 查看回退后的历史版本信息
    案例詳解Git常用操作指令
    结果从历史版本信息我们可以看出,我们已经从 “修改 b.txt” 回退到了 “提交 b.txt”,回退之后的当前版本为 “提交 b.txt”

5.2 回退到指定版本

  1. 我们直接复制想要回退位置的版本号,使用下面代码就可以回退到复制的版本号的位置了
git reset --hard 
  1. 例如:我复制 “提交 a.txt 文件” 的版本号
git reset --hard 6ec9373d22d1a869b67681a39dc04df34292133b

案例詳解Git常用操作指令
结果从查看的历史版本结果可以看出我们回退到了 “提交 a.txt” 版本

5.3 恢复回退的版本

  1. 有时候我们回退了版本后反悔了,想要返回到回退版本之前,这时我们就需要找到之前的 commit id,但是从上面的查看历史版本命令可以看出,我们找不到之前的 commit id 了,于是我们可以使用下面命令
git reflog

案例詳解Git常用操作指令

结果reflog 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)

  1. 假设我们想回退到 “提交修改的 b.txt 文件” 的位置上,也就是历史版本信息的倒数第三行,我们只需要复制 HEAD 前面的 7a42e7b,然后使用下面命令就可以了
git reset --hard 7a42e7b

案例詳解Git常用操作指令

结果历史版本信息可以看出我们已经回退到了我们想要的版本

6. 查看不同版本的差异

  1. 当我们们修改完代码之后没有添加到暂存区提交,第二天我们忘记了昨天改了什么代码,这是我们就可以按下面步骤来看不同版本之间的差异;

例如:我们把 b.txt 文件内容修改为为 bbbaaa,然后用下面代码查看,可以看出我们修改了什么

git diff		
# 查看不同版本之间的文件差异

案例詳解Git常用操作指令

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 commitgit add 时的状态。

注意git checkout -- file 命令中的 -- 很重要,没有 -- ,就变成了**“切换到另一个分支”**的命令,我们在后面的分支管理中会再次遇到 git checkout 命令

8. 删除文件/缓存

8.1 使用 rm 命令删除文件

通常直接在文件管理器中把没用的文件删了,或者用rm命令删除,例如:删除 b.txt

git rm b.txt

删除步骤

  • rm 删除文件
  • rm 删除后会自动添加到暂存区,省略了手动 add 命令
  • 最后进行 commit 提交,文件被删除
    案例詳解Git常用操作指令
    注意删除步骤可以通过 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>

案例詳解Git常用操作指令

9.2 开发流程图

案例詳解Git常用操作指令

五、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 log#git log --pretty=oneline精簡顯示所有歷史提交記錄#可以查看所有分支的所有操作記錄(包括已經刪除的commit 記錄和reset 的操作)git log -p查看全部提交歷史並展示每次修改的內容查看最近2次提交歷史(注意:後面的數字是可以自訂的,也就是說,這種寫法是git log -n 的體現)
#指令 作用
查看全部歷史提交記錄
git reflog
git log -2

git log -p -2

查看最近2次提交歷史並展示修改的內容git log --stat查看提交歷史,並展示摘要內容(摘要會列出修改的檔案以及每個檔案中修改了多少行)指令作用git reset -- hard HEAD^#git reset --hard HEAD~N(不是-,是波浪線)git reset --hard
7. 版本回退與復原
回退到上一個版本
回退到上N個版本

回退到指定版本

恢復回退的版本指令作用
git reflog 和git reset --hard 合併使用
8. 檢視不同版本的差異

看不同版本之間的檔案差異
git diff
#9. 撤銷修改 指令作用

git checkout – b.txt一: 自修改後還沒有被放到暫存區(git add),現在,撤銷修改就回到和版本庫一模一樣的狀態; 二:readme.txt
readme.txt
已經加入到暫存區後,又作了修改,現在,撤銷修改就回到暫存區後的狀態。
10. 刪除

git rm b.txtrm 刪除檔案rm 刪除後會自動新增到暫存區,省略了手動add 指令最後進行commit 提交,文件被刪除git rm b.txt --cached刪除快取區單一文件,b.txt處於未追蹤狀態,也就是從暫存區刪除rm .git/index 清空所有快取#11. 分支管理#git branch查看分支
指令

#git branch

### 建立分支## #############git checkout ######### 切換分支###############git checkout -b ##### ####建立切換到新分支###############git merge #########將某一分支合併到目前分支######## #######git branch -d #########刪除分支################推薦學習:《###Git學習教學### 》######

以上是案例詳解Git常用操作指令的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除