簡介一般工作中,我們每次**測試通過後,**需要合併到master分支,並將master分支的**發布到線上。在合併回master過程,如果涉及到多團隊並行開發時,可能會遇到**合併衝突。在修復衝突過程中,可能將別人的**誤刪或自己的**被別人誤刪。這時我們如何快速判斷,master分支上包含了本次開發功能的所有**?本文主要介紹如何通過管道命令,快速地找出本次需求中開發過的檔案在master分支和測試環境分支下的**差異。
示例
提交內容如下
commit2的提交內容有:修改test2檔案的內容
如何找到一次需求開發中所有修改或新建的檔案列表(即查詢連續commit修改檔案列表)
git checkout '分支名'
head 當前最新commit
head^ 上乙個commit
head^^ 上上個commit
head~n (n為整數) 前n個commit
也可以是具體的commit id值
git diff --name-only head^^
orgit diff --name-only d4e1b3f03feec5bcd60508959dc70f29cfe1bc41
# 結果
test1
test_dir/test2
過濾掉不關心的檔案/資料夾git diff --name-only [head or commit id] | grep -v [要過濾的檔名/資料夾名]
例: git diff --name-only head^^|grep -v test_dir
結果test1
比較某檔案在兩個分支下的差異git diff 分支1名 分支2名 檔名
例: git diff test origin/master test1
diff --git a/test1 b/test1
deleted file mode 100644
index 58c9bdf..0000000
--- a/test1
+++ /dev/null
@@ -1 +0,0 @@
-111
某期需求涉及到多個檔案比較git diff --name-only head^^|grep -v test_dir |xargs git diff test master
git比較兩個分支的檔案和提交
master分支建立檔案masterfile.md,兩次修改此檔案,並提交兩次。func分支增加檔案funcfile.md,三次修改此檔案,並提交三次。然後對masterfile.md進行修改,提交第四次。然後切換回master分支,修改masterfile.md,提交第三次。git diff ma...
保持兩個Git分支不同的檔案
時間 2019 01 27 標籤 git 欄目 git 原文 我確定我的 git repo的兩個分支應該只在乙個檔案中有所不同.確保這一點的最簡單方法是在branch1中完成所有工作,並在每次切換到它時將其合併到branch2中 包裝到shell指令碼中,因此每個交換機只需要乙個命令 但是,有沒有辦...
git 合併兩個分支的某個檔案
軟體開發基本都是多個feature分支並行開發,而在上線前有可能某個分支的開發或測試還沒有完成,又或者是產品調整,取消了該分支功能的上線計畫,我們在release前不合併該分支即可,然而如果該分支中的某些小調整卻需要上線,我們就需要把其中的部分檔案合併到release分支。在之前遇到這種情況通常都是...