Git(9)-diff

分支

  • 1. diff in Linux/Unix
  • 2. diff in Git
  • 3. git diff 兩點語法

Linux/Unix 系統中存在diff 命令,可以用來顯示兩個文本/工作路徑的差異。Git diff 在此基礎上進行的擴展。

1. diff in Linux/Unix

Linux 系統中的diff 命令:提供了一個文件如何轉化為另一個文件的正式描述。

:~/git-test/diff_test$ touch first.txt
:~/git-test/diff_test$ touch second.txt
:~/git-test/diff_test$ vim first.txt 
:~/git-test/diff_test$ vim second.txt 
:~/git-test/diff_test$ cat first.txt 
Now is the time
For all good men
To come to the day
of their country.
:~/git-test/diff_test$ cat second.txt
Today is the time
For all good men
And women
To come to the aid
of their country.
# 對比合并格式的差異 unified diff
:~/git-test/diff_test$ diff -u first.txt second.txt      
--- first.txt   2021-10-13 09:08:48.691194175 +0800      # --- 表示原始文件
+++ second.txt  2021-10-13 09:09:00.840860053 +0800      # +++ 表示新文件
@@ -1,4 +1,5 @@                                          # 兩個文件擁有的行數
-Now is the time                              # -號開始的行表示新文件中刪除了該行
+Today is the time                            # +號開始的行表示新文件中增加了該行For all good men                             # 空格開始的行表示兩個文件中共有一致行
-To come to the day
+And women
+To come to the aidof their country.
(base) caros@caros-ThinkStation-P340:~/git-test/diff_test$ 

UNIX 系統中的diff命令可以計算兩個目錄結構中所有對應文件之間的差異

diff -r origin/src/ new/src # 命令是不是這么寫待求證

2. diff in Git

git diff 命令依據參數的個數確定兩個比較對象,不顯示指出文件名時,默認對比兩個目錄下所有文件的差異。

git diff                     	# 工作目錄-暫存區
git diff commit_id				# 工作目錄-某次提交;commit_id=HEAD就是對比上次提交
git diff --cached commit_id     # 暫存區-某次提交
git diff commit1_id commit2_id  # 某兩次提及
git diff xxx xxx file_name      # 只對比file_name的區別(文件名前加不加--都行,為了和git checkout -- filename 一致建議加上)

git 命令的可用參數

--M # 查找重命名文件(不知道有啥用)
-w  # diff 比較時忽略空白字符,還有一個詳細命令 --ignore-all-spcace
--state # 統計兩個樹狀態之間的差異,報告簡介的顯示有多少行發生了變化
--color # 使輸出結果使用多種顏色表示,一種顏色顯示一種變化。(試了一下沒啥變化)
-S"string" # pickaxe 命令
Document # 只顯示document的變更

git diff -S"octopus" mater~50 # matrer分支上最近50個提交中包含string 的變更。

3. git diff 兩點語法

git diff 兩點語法:用于顯示兩個提交之間的不同,兩個命令等價。

git diff master bug/pr-1
git diff master..bug/pr-1.       # 兩個命令等價

對比git log 的兩點語法:顯示各自可達,又同時不可達的提交

git log commit1..commit2

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/444663.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444663.shtml
英文地址,請注明出處:http://en.pswp.cn/news/444663.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

圖像拼接(一):柱面投影+模板匹配+漸入漸出融合

這種拼接方法的假設前提是:待拼接的兩幅圖像之間的變換模型是平移模型,即兩幅圖像同名點位置之間只相差兩個未知量:ΔxΔx 和ΔyΔy,自由度為2,模型收得最緊。所以只有所有圖像都是用同一水平線或者同一已知傾斜角的攝…

圖像拼接(二):OpenCV同時打開兩個攝像頭捕獲視頻

使用OpenCV實現同時打開兩個USB攝像頭,并實時顯示視頻。如果未檢測有兩個攝像頭,程序會結束并發出“攝像頭未安裝好”的警告。這里推薦一個小巧的攝像頭視頻捕捉軟件:amcap,使用它可以方便的檢查每個攝像頭是否能正常工作。 捕獲…

Git(10)-merge

Merge1. 無沖突合并2. 有沖突合并-手動解決3. git diff in merge4. 廢棄合并5. 合并策略merge相關的操作的命令 git checkout master git merge alternate # 解決沖突 ..... git add file_1 git commit -m "Add slternate line 5, 6" git reset --hard HEAD # b…

elasticsearch的Linux下安裝報錯問題解決

1.啟動報錯如下: vim /etc/security/limits.conf 然后修改如下 * soft nofile 65536 * hard nofile 65536sudo vi /etc/pam.d/common-session 添加 session required pam_limits.so sudo vi /etc/pam.d/common-session-noninteractive 添加 session required pam_limits.so…

leetcode120. 三角形最小路徑和

給定一個三角形,找出自頂向下的最小路徑和。每一步只能移動到下一行中相鄰的結點上。 例如,給定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自頂向下的最小路徑和為 11(即,2 3 5 1 11&#xff0…

Elasticsearchan相關插件和工具安裝

1、下載elasticsearch-head的源碼包 地址:https://github.com/mobz/elasticsearch-head/releases 2、安裝node運行環境 地址:https://nodejs.org/en/download/ 3、安裝完node之后編譯elasticsearch-head 執行npm install -g grunt-cli編譯源碼 執行…

Git(11)-cherry-pick、reset、rebase

更改提交,版本回退1.get reset 重置HEAD指針的指向2.git cherry-pick3.git revert4.git commit --amend修改提交5.git rebase 變基提交5.1 git rebase --onto5.2rebase 產生沖突,解決沖突/終止變基5.3git rebase -i6. rebase Vs mergegit 提供了【修改】…

Elasticsearch集群節點配置詳解

注意:如果是在局域網中運行elasticsearch集群也是很簡單的,只要cluster.name設置一致,并且機器在同一網段下,啟動的es會自動發現對方,組成集群。 三、配置淺涉 elasticsearch的config文件夾里面有兩個配置文件&#…

MongoDB修改器使用

歡迎關注我的新微信公眾號 ipgame,有什么問題可以提供交流的平臺,歡迎大家討論。 對于文檔的更新除替換外,針對某個或多個文檔只需要部分更新可使用原子的更新修改器,能夠高效的進行文檔更新。更新修改器是中特殊的鍵, 用來指定復雜的操作,比如增加、刪除或者調整鍵,還…

Git(12)-stash, reflog

git stash1. git stash2. reflog命令概覽git stash save "WIP:xxxxx" # save后可以跟筆記,WIP:work in process git stash list # 查看存儲狀態棧的條目 git stash pop # 當前工作目錄和索引還原至最近一次save操作的內容…

cmake生成Win64位工程

使用cmake編譯64的dll 一開始使用cmake --build .來生成了dll,在導入到java項目中使用的時候,才發現是32位的。導致程序不能正常運行,報錯如下: Exception in thread "main" java.lang.UnsatisfiedLinkError Cant load…

leetcode 106. 從中序與后序遍歷序列構造二叉樹

根據一棵樹的中序遍歷與后序遍歷構造二叉樹。 注意: 你可以假設樹中沒有重復的元素。 例如,給出 中序遍歷 inorder [9,3,15,20,7] 后序遍歷 postorder [9,15,7,20,3] 返回如下的二叉樹: 3 / \ 9 20 / \ 15 7 思路:和前…

Mat矩陣(圖像容器)的創建及CV_8UC1,CV_8UC2等參數詳解

一)Mat矩陣(圖像容器)創建時CV_8UC1,CV_8UC2等參數詳解 1--Mat不但是一個非常有用的圖像容器類,同時也是一個通用的矩陣類 2--創建一個Mat對象的方法很多 3--使用Mat圖像容器類創建Mat類的對象 //! default constructor Mat(); //! constructs …

TensorFlow(1)-模型相關基礎概念

TensorFlow-11.Graph對象2.Session對象3.Variabels變量4. placeholders與feed_dict5. tf.train.Saver() 模型參數保存、加載Tensorflow 中文官網教程–2.0版本的官方教程 TensorFlow教程:TensorFlow快速入門教程(非常詳細) pytorch Vs tensor…

memcache的使用入門C++代碼

下載源碼編譯,memcached就是生成的主程序,啟動可指定端口,memcached作為server端,依然是我們熟悉的cs模式,使用兩個client一個setkey,一個getkey一百萬個做測試。 ./memcached -d -m 300 -p 11211 -u root…

leetcode78 子集

給定一組不含重復元素的整數數組 nums,返回該數組所有可能的子集(冪集)。 說明:解集不能包含重復的子集。 示例: 輸入: nums [1,2,3] 輸出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 思路&…

Fiddler抓包工具使用

先下載Fiddler 歡迎關注我的新微信公眾號 ipgame,有什么問題可以提供交流的平臺,歡迎大家討論。 電腦最好是筆記本,這樣能和手機保持統一局域網內;其他不多說,直接說步驟了。 一.對PC(筆記本&#xff0…

Tensorboard--模型可視化工具

Tensorboard1.tensorboard in tensorflow1.1 tensorboard的啟動過程1.2 tf.summary 可視化類型1.3 tf.summary 使用demo2.tensorboard in pytorch2.1 SummaryWriter 使用demo12.2 tSummaryWriter 使用demo22.3 tensorboard 數據再讀取tensorboard in tensorflow :te…

opencv findContours 報錯_acrt_first_block == header

報錯_acrt_first_block header 之前一直使用OpenCV3.3VS2015 void AOIAlgorithm::findUnits(Mat& blkGray, vector<vector<cv::Point>> & blkContours) {Mat blkOBW;blur(blkGray, blkGray, cv::Size(5, 5));threshold(blkGray, blkOBW, 0, 255, CV_THR…

TensorFlow(2)-訓練數據載入

tensorflow 訓練數據載入1. tf.data.Dataset2. dataset 創建數據集的方式2.1 tf.data.Dataset.from_tensor_slices()2.2 tf.data.TextLineDataset()2.3 tf.data.FixedLengthRecordDataset()2.4 tf.data.TFRecordDataset()3. dateset 迭代操作iterator3.1 make_one_shot_iterato…