创建一个排除某些文件的补丁文件

2024-03-27

我想创建一个补丁文件,仅将某些文件从 dir2 修补到 dir1。两者都是同一项目的 git 存储库,但是 dir2 包含第一个版本的高度修改版本。我只想修补对某些文件所做的更改。 dir2 还具有 dir1 没有的额外文件。 主要是 dir1 中有配置文件,我不希望 dir2 更改,因为这些更改会破坏我的本地配置。如何排除更改这些特定文件?


要获取 dir1 和 dir2 共享的文件...

cd dir1
tree -aif --noreport > dir1.out
cd dir2
tree -aif --noreport > dir2.out
cat dir1.out dir2.out | sort | uniq -d > shared.out

(你也许可以使用ls获得列表,但我永远无法正确)

要获取自给定提交以来对 dir2 文件的更改(这些文件也在 dir1 中)...

cd dir2
git diff <commit> -- `cat shared.out` > dir2.patch

然后使用该补丁将其应用到 dir1patch以及适当的-p旗帜。任何您不想更改的内容,请使用git checkout <dir1/somefile>撤消更改。然后正常添加并提交。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建一个排除某些文件的补丁文件 的相关文章

随机推荐