我对一个开源项目做了一些更改,没有花时间创建适当的补丁文件.
现在,项目的维护者发布了一个新版本,在新的和编辑过的文件中,有一堆重命名的文件.
什么是将我的更改应用到新版本的最佳方式?
我是diff/patch使用的新手,如果我能用git完成它,那就更好了.
Wil*_*ell 52
如果你有两个目录a,并b认为是相似的,你想b是一样的a,你可以创建并应用补丁有:
$ diff -ur b a > ba.diff
$ patch -i ba.diff
Run Code Online (Sandbox Code Playgroud)
假设您有目录local(包含本地版本的upstream1.0)upstream1.0,和upstream1.1.要创建并应用您的更改upstream1.1:
$ diff -ur upstream1.0 local > my.diff
$ cd upstream1.1
$ patch -i ../my.diff
Run Code Online (Sandbox Code Playgroud)
检查文档中的补丁,并尝试说服上游维护者使用git.如果您可以使用git工具来处理本地存储库,那么事情会变得更加简单.
nir*_*iry 10
如果项目是在git下并且您没有在本地提交更改,那么您可以简单git diff > file.patch地获取可修补的差异数据.如果您已在本地提交更改,则可以git log在您之前查找提交git diff commit_string > file.patch.
如果项目不在git下,或者你没有克隆存储库而没有克隆存储库(如标题所示),则可以使用diff -urN original_dir new_dir > file.patch创建补丁文件.在这两种情况下,您可以稍后尝试使用补丁来应用补丁.
但是,考虑使用git工具将更改与新版本合并,因为git也能够跟踪文件名更改.你需要学习很多关于git本身的知识,并且你需要一些时间才能做到正确 - 你应该在开始玩它之前备份你的工作.
| 归档时间: |
|
| 查看次数: |
37333 次 |
| 最近记录: |