git提取出兩個版本之間的差異檔案並打包

2021-07-16 03:05:38 字數 1421 閱讀 7879

公司的專案原先是使用svn做版本管理,發布專案的時候是採用打包的方式壓縮成zip格式的檔案,然後用ftp上傳。隨著開發人員越來越多,需求變化也比較多,經常在開發新功能時要調整線上的問題,在乙個分支上進行開發就非常不方便。雖然svn也支援多分支開發,但是操作非常不便,於是就把專案的版本管理切換成了git。

切換成git之後,為了平緩的過度,發布專案的時候還是打算使用打包的方式,然後ftp上傳。那麼問題就來了:git如何提取出兩個提交之間的差異檔案呢?

一開始找了git format-patch和git archive都沒有找到需要的功能,後來就去查git diff命令,找到了方法。

git diff這個命令能比較兩個提交之間的差異,使用–name-only引數可以只顯示檔名。例如:

git diff列出兩個提交之間差異的檔案

git diff列出兩個提交之間差異的檔案

就能成功打包了。只是這樣的話也太麻煩了吧,幸好linux有提供乙個命令xargs能將前乙個命令的輸出轉成另外乙個命令的引數,按照這個思路就非常簡單了

結合xargs進行打包

git diff列出兩個提交之間差異的檔案

其實這種發布方式並不是非常好,如果線上的環境也能使用版本管理就非常方便了,只是這需要多方面的的配合。從某種意義上來講,這種打包更新方式只是一種折中的處理方式。

還乙個問題是這樣的:提交的排序是按照時間來進行的,如果有分支合併進來的,可能分支裡的提交時間在上次發布的提交時間之前,這樣是否會漏打包到檔案呢?答案是不會的,因為合併分支會產生乙個新的提交,這個提交一定是在上次發布的提交之後。

注:常用命令

git diff 

filename

檢視尚未暫存的某個檔案更新了哪些

git diff –cached 

filename

檢視已經暫存起來的某個檔案和上次提交的版本之間的差異

git diff ffd98b291e0caa6c33575c1ef465eae661ce40c9 b8e7b00c02b95b320f14b625663fdecf2d63e74c 檢視某兩個版本之間的差異

git diff ffd98b291e0caa6c33575c1ef465eae661ce40c9:filename b8e7b00c02b95b320f14b625663fdecf2d63e74c:filename 檢視某兩個版本的某個檔案之間的差異

git提取出兩個版本之間的差異檔案並打包

3年前 2013 09 11 22678瀏覽 公司的專案原先是使用svn做版本管理,發布專案的時候是採用打包的方式壓縮成zip格式的檔案,然後用ftp上傳。隨著開發人員越來越多,需求變化也比較多,經常在開發新功能時要調整線上的問題,在乙個分支上進行開發就非常不方便。雖然svn也支援多分支開發,但是操...

SVN匯出兩個版本之間的差異檔案

例如你上一次部署的版本是r20,你今次想部署的版本是r30,但是你只需要更新r30與r20版本之間的不同的檔案,就是兩個版本之間的差異檔案,那麼使用tortoisesvn可以很容易的做到這個事情。先選擇showlog檢視修改記錄,然後選擇你要比較的兩個版本,然後按右鍵選 compare revisi...

Jmeter 正則表達提取器取出兩個不同的引數值

問題 退費需要同時傳兩個引數,訂單id和退費no。介面返回引數 方法一 正則 id s s refundno s s 去掉兩個引數間不需要的值 換行符 空格等 檢視提取的引數值 執行介面,debug sampler中檢視結果 方法二 建立兩個正則提取器,分開取值,這個是是一開始用的方法,但是matc...