【Android】Git Patch生成的文件怎么合并到項目里面和遇到的一些問題

前言

Git patch是一種描述文件,它記錄了一系列的文件變更(如新增、修改、刪除)以及變更的具體內容。通過使用patch文件,可以將這些變更應用到其他代碼庫中,從而實現代碼的同步和更新。

Git 提供了兩種補丁方案,一是用git diff生成的UNIX標準補丁.diff文件,二是git format-patch生成的Git專用.patch 文件。
.diff文件只是記錄文件改變的內容,不帶有commit記錄信息,多個commit可以合并成一個diff文件。
.patch文件帶有記錄文件改變的內容,也帶有commit記錄信息,每個commit對應一個patch文件。

生成
創建patch和diff
從某次提交(含)之前的幾次提交創建Patch文件:
git format-patch <commit_sha1_id> -n

這個命令會從指定的提交開始往前數,生成指定數量的Patch文件。-n 參數表示生成的Patch文件數量,從指定提交開始往前數。

示例:

git format-patch 2a2fb4539925bfa4a141fe492d9828d030f7c8a8 -2

這個命令將生成從提交 2a2fb4539925bfa4a141fe492d9828d030f7c8a8 開始往前數的兩個Patch文件。

創建某個提交的Patch文件:
git format-patch <commit_sha1_id> -1

這個命令會生成指定提交的Patch文件。

示例:

git format-patch 2a2fb4539925bfa4a141fe492d9828d030f7c8a8 -1

這個命令將生成提交 2a2fb4539925bfa4a141fe492d9828d030f7c8a8 對應的Patch文件。

創建某兩次提交之間的所有Patch:
git format-patch <commit_sha1_id1>..<commit_sha1_id2>

這個命令會生成指定兩次提交之間的所有Patch文件。

示例:

git format-patch 2a2fb4539925bfa4a141fe492d9828d030f7c8a8..89aebfcc73bdac8054be1a242598610d8ed5f3c8

這個命令將生成從提交 2a2fb4539925bfa4a141fe492d9828d030f7c8a8 到提交 89aebfcc73bdac8054be1a242598610d8ed5f3c8 之間的所有Patch文件。

創建Diff文件的常用方法:
使用 git diff 命令可以生成Diff文件。
git diff <commit_sha1_id1> <commit_sha1_id2> > <diff_file_name>

這個命令會生成兩次提交之間的所有差異,并將其保存到指定的Diff文件中。

示例:

git diff 2a2fb4539925bfa4a141fe492d9828d030f7c8a8 89aebfcc73bdac8054be1a242598610d8ed5f3c8 > patch.diff

這個命令將生成提交 2a2fb4539925bfa4a141fe492d9828d030f7c8a8 和 89aebfcc73bdac8054be1a242598610d8ed5f3c8 之間的所有差異,并保存到名為 patch.diff 的文件中。

使用Patch文件

現在有一個【0001-.patch】文件,需要把它應用到項目里面。

1.先把文件放在項目里面(隨便找一個位置都可以,但是也不要太搞了,記住文件的位置絕對路徑)

2.使用這個文件

git apply xxx.patch

比如

git apply D:\Android\AndroidProject\FormalProject\xxx\xxxxxxx-ad\xxxxxx\\debug\0001-.patch

這里面我把這個文件放在我的debug文件目錄下面了,這個都隨便放的,但是要記得位置就好了

要是沒啥問題的話,這一步之后其實就完事了,代碼就合并了,但是我們遇到了代碼沖突問題

比如

D:\Android\AndroidProject\FormalProject\xxxx\xxx-ad>git apply D:\Android\AndroidProject\FormalProject\xxxx\xxx-ad\qqqqq\eeee\debug\0001-.patch
error: patch failed: xxxx/src/main/java/com/wer/xxxx/work/newwork/MyActivity.java:35
error: xxxx/src/main/java/com/southgnss/xxxx/work/newwork/MyActivity.java: patch does not apply
error: patch failed: xxxx/src/main/res/layout/fragment_sample.xml:56
error: xxxx/src/main/res/layout/fragment_sample.xml: patch does not apply

通過這個錯誤可以看出,有兩個地方存在了沖突,需要解決這兩個沖突才可以合并下去。

解決沖突

首先我們先把不沖突的文件合并

git apply --reject xxx.patch

比如

D:\Android\AndroidProject\FormalProject\xxx\xxxxx-ad>git apply --reject D:\Android\AndroidProject\FormalProject\xxx\xxxxx-ad\xxx\qqq\debug\0001-.patch

經過這個之后,現在不沖突的代碼已經被合并了,但是沖突的代碼還在,沖突的代碼會生成【.rej】文件,這個文件去哪里找呢?

就在同名文件下面

比如
上面我們有兩個文件沖突,其中一個文件是【MyActivity】這個文件沖突,在執行了【git apply --reject】之后,找到這個文件【MyActivity】所在的文件夾,此時在這個文件下面會有一個同名文件【MyActivity.java.rej】。
打開這個文件然后對照【MyActivity】文件進行沖突的解決。

當所有沖突文件解決之后,就可以刪除【.rej】文件了,然后把之前的那個【0001-.patch】文件也可以刪除了

最后再檢查一下代碼,沒問題了就可以正常的使用git提交代碼了

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

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

相關文章

Java使用OpenCV計算兩張圖片相似度

業務&#xff1a;找出兩個表的重復的圖片。 圖片在表里存的是二進制值&#xff0c;存在大量由于一些特殊情況例如掃描有差異&#xff0c;導致圖片存的二進制值不同&#xff0c;但圖片其實是一樣來的。 所以找出兩個表重復相同的圖片&#xff0c;不可能只是單純的比較二進制值…

flask招聘數據分析及展示平臺-計算機畢業設計源碼39292

目 錄 摘要 1 緒論 1.1研究意義 1.2國內外研究進展 1.3flask框架介紹 2 1.4論文結構與章節安排 3 2 招聘數據分析及展示平臺分析 4 2.1 可行性分析 4 2.2 系統流程分析 4 2.2.1數據增加流程 5 2.3.2數據修改流程 5 2.3.3數據刪除流程 5 2.3 系統功能分析 5 2.3.1 功能性分…

亞馬遜新品如何快速吸引流量?自養號測評助賣家一臂之力

在亞馬遜平臺上每天都會有大量的新品推出&#xff0c;而這些新品中有部分可能并沒有什么流量和訂單&#xff0c;有些可能上架后立馬就能獲得流量了&#xff0c;那么亞馬遜上新品一般幾天出單&#xff1f; 一、亞馬遜上新品一般幾天出單&#xff1f; 亞馬遜上新品出單的時間因…

DispatcherTimer應用

DispatcherTimer 是 WPF 中用于執行定時任務的類&#xff0c;用于在指定的時間間隔內執行任務。它與 UI 線程的 Dispatcher 相關聯&#xff0c;因此可以用來更新 UI 元素&#xff0c;而不必擔心線程安全問題。 關鍵特性&#xff1a; 線程安全&#xff1a;DispatcherTimer 確保…

人工智能時代,想轉型AI產品經理?這篇文章你不應該錯過

前言 在這個日新月異的智能時代&#xff0c;人工智能&#xff08;AI&#xff09;已經從未來概念轉變為推動各行各業發展的核心驅動力。作為連接技術與市場的橋梁&#xff0c;AI產品經理的角色愈發關鍵&#xff0c;他們不僅是技術的翻譯者&#xff0c;更是創新的推動者。如果你…

Mintegral解析休閑游戲如何靠創意素材吸引玩家

核心玩法簡單清晰、容易讓人無限上頭的休閑游戲&#xff0c;玩法機制一般比較明確、簡單&#xff0c;如果要在短時間內吸引玩家注意&#xff0c;除了完整展示游戲流程以外&#xff0c;開發者需要在素材中設置更多亮點性的內容&#xff0c;如吸睛的劇情、爆炸性的視聽效果等元素…

組件的注冊和引用

在Vue中&#xff0c;開發者可以將頁面中獨立的、可重用的部分封裝成組件&#xff0c;對組件的結構&#xff0c;樣式和行為進行設置。組件是 Vue 的基本結構單元&#xff0c;組件之間可以相互引用。 一.注冊組件 當在Vue項目中定義了一個新的組件后&#xff0c;要想在其他組件中…

Vue3_對接騰訊云COS_大文件分片上傳和下載

目錄 一、騰訊云后臺配置 二、安裝SDK 1.script 引入方式 2.webpack 引入方式 三、文件上傳 1.new COS 實例 2.上傳文件 四、文件下載 騰訊云官方文檔&#xff1a; 騰訊云官方文檔https://cloud.tencent.com/document/product/436/11459 一、騰訊云后臺配置 1.登錄 對…

[職場] 為什么不能加薪? #學習方法#知識分享#微信

為什么不能加薪&#xff1f; 不能加薪的根本原因&#xff0c;終于被我找到了&#xff01; 朋友們&#xff01;職場這個地方是個很神奇的世界&#xff0c;有些規則并不是你想象的那樣。我們都希望能在這個世界里施展自己的才華&#xff0c;獲得升職加薪的榮耀。然而&#xff0c…

seerfar丨OZON運營工具,OZON選品插件

隨著全球電商市場的蓬勃發展&#xff0c;OZON作為俄羅斯及東歐地區的重要電商平臺&#xff0c;吸引了眾多中國商家的目光。然而&#xff0c;如何在OZON平臺上脫穎而出&#xff0c;實現高效的商品運營&#xff0c;成為了眾多商家亟待解決的問題。在這樣的背景下&#xff0c;seer…

tailwindcss的@apply使用

tailwindcss的apply是把在html寫的tailwindcss可以挪到style里面 簡化頁面的可讀性 沒寫之前的 <section class"block-risk absolute flex flex-col items-center p-4 text-center left-0 text-white;" :style"{ top, left: 60px }"> </section…

淺析軟件開發技術的發展歷程與展望

隨著信息技術的飛速發展&#xff0c;軟件開發技術也在不斷演進。本文旨在深入探討軟件開發技術的發展歷程&#xff0c;并分析其未來的發展趨勢和展望。 軟件開發技術的發展歷程 在回顧軟件開發技術的發展歷程時&#xff0c;我們不禁驚嘆于這一領域的飛速進步。從早期的手工編寫…

被拖欠6000萬,代工大廠倒閉了····

6月7日消息&#xff0c;據綜合媒體報道&#xff0c;電子煙代工大廠佳斯特電子&#xff08;東莞&#xff09;發布公告&#xff0c;將自6月3日起停止一切經營活動&#xff0c;開始自行清算工作。根據佳斯特電子科技&#xff08;東莞&#xff09;有限公司的通告&#xff0c;由于公…

pyqt6 任務欄不顯示設置的icon

添加這段代碼即可解決 import ctypes myappid mycompany.myproduct.subproduct.version ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid)

TypeScript環境安裝與VScode編輯器的使用

說明大背景環境&#xff0c;我用的是window10系統。 1.安裝node.js 。 去官網下載安裝包。 雖然我去的是官網&#xff0c;但是不知為何下載了個不知名的東西&#xff0c;后來又找了個鏈接才下載正確了。 實際上就是一個.msi的文件。我用的版本&#xff1a;node-v18.19.0-x6…

最大矩形問題

柱狀圖中最大的矩形 題目 分析 矩形的面積等于寬乘以高&#xff0c;因此只要能確定每個矩形的寬和高&#xff0c;就能計算它的面積。如果直方圖中一個矩形從下標為 i 的柱子開始&#xff0c;到下標為 j 的柱子結束&#xff0c;那么這兩根柱子之間的矩形&#xff08;含兩端的柱…

能把試卷上的字消除的軟件有哪些?推薦三款好用的

能把試卷上的字消除的軟件有哪些&#xff1f;在數字化時代&#xff0c;我們越來越依賴科技手段來解決生活中的各種問題。其中&#xff0c;試卷上的字消除問題&#xff0c;就是一個備受關注的痛點。幸運的是&#xff0c;現在市面上已經出現了多款能夠輕松消除試卷上字跡的軟件&a…

力扣hot100:295. 數據流的中位數(兩個優先隊列維護中位數)

LeetCode&#xff1a;295. 數據流的中位數 這個題目最快的解法應該是維護中位數&#xff0c;每插入一個數都能快速得到一個中位數。 根據數據范圍&#xff0c;我們應當實現一個 O ( n l o g n ) O(nlogn) O(nlogn)的算法。 1、超時—插入排序 使用數組存儲&#xff0c;維持數…

【WEB自動化面試02--學習過程的問題及解決】

day01 1、報錯獲取不到瀏覽器二進制文件&#xff1a;需要指定瀏覽器路徑及驅動路徑。 第一次使用谷歌瀏覽器驅動&#xff0c;找不到二進制文件報錯&#xff1a; selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find Chrome binary Stacktra…

短視頻矩陣源碼----如何做正規開發規則分享:

一、什么是SaaS化服務技術開發&#xff1f; &#xff08;短視頻矩陣系統是源頭開發的應該分為3個端口---- 總后臺控制端、總代理端口&#xff0c;總商戶后臺&#xff09; SaaS是軟件即服務&#xff08;Software as a Service&#xff09;的縮寫。它是一種通過互聯網提供軟件應…