[英]Using git diff to replicate changes in another directory
我在一個 GIT 存儲庫下有多個網站結構(簡化)如下:
/
/site-1
/site-1/index.js
/site-1/about.js
/site-1/package.json
/site-1/node_modules(not versioned)
/site-1/package-lock.json(not versioned)
/site-2
/site-2/index.js
/site-2/about.js
/site-2/package.json
/site-2/node_modules(not versioned)
/site-2/package-lock.json(not versioned)
/site-3
/site-3/index.js
/site-3/about.js
/site-3/package.json
/site-3/node_modules(not versioned)
/site-3/package-lock.json(not versioned)
我在/site-1/index.js 、 /site-1/package.json中做了一些修改,並添加了一個文件/site-1/changes.md 。 更改是在名為feature/carousel的功能分支中的 2 個單獨的 git 提交中完成的。
我想在/site-2和/site-3中應用相同的更改。
我嘗試了以下方法:
git format-patch master -o patches
來檢索此功能分支中關於master分支的新差異,但我無法在/site-2和/site-3中應用差異。diff -ruN site-1 site-2 > PatchFile1
生成一個合並的差異,但它也考慮了在/site-2中修改過的文件,它不是可以直接應用於/site-3的通用差異知道如何實現這一目標嗎?
您可以使用git apply
和--directory
選項將補丁應用到另一個主目錄,如下所述:
首先,根據應用於目錄site-1
的更改創建補丁文件changes.patch
。 然后您可以執行以下操作:
git apply -p1 --directory='site-2' changes.patch
git apply -p1 --directory='site-3' changes.patch
-p1
從補丁頭中刪除站點文件夾,這是不同目錄之間不同的主要部分。
--directory='site-2'
將導致site-2
前綴添加到補丁中的每個header
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.