我正在尝试使用git format-patch从一个回购库创建补丁并将其应用到另一个回购库。令我吃惊的是,尽管这两个文件差异很大,但它仍然奏效。有人可以解释技术人员如何处理应用修补程序?显然,它不仅仅使用行号,所以如果有人能指出我的方向真的很棒。Git/Diff修补程序技术说明
6
A
回答
8
有两种主要方式补丁可以应用到修改的文件:
- 匹配未修饰(“上下文”)和前修改线
上下文线(由单个空间,而不是一个或+
前面-
)是unified diff格式在其GIT中的差异格式在很大程度上是基于的一部分。它们是额外的行,它们在“原始”和“修改”源文件中是相同的,但是围绕着修改过的区域。这些上下文行(以及预修改行(即删除/更改的行))被程序使用,该程序应用diff来查找应该应用每个diff“hunk”的位置,即使目标“target”文件已经插入或在正常目标位置之前移除行(正常位置由行号指定,由于插入/移除行,已在“目标”文件(相对于“原始”文件)中有效地改变了行号)。
Git的diff格式还包含一个特殊的“索引”行,用于指示“原始”和“修改”文件的对象ID(即缩写为SHA-1哈希)的每个修改文件。如果目标存储库在其对象存储中具有“原始”文件,则可以使用它来准确重构“已修改”文件的内容,然后在文件的三个版本之间执行“原始”,“已修改” (两个源文件)和“目标”(目标文件)。这由git am -3
使用,可以帮助自动解决补丁和“目标”文件之间的一些冲突。
相关问题
- 1. Rss/Feedburner技术说明?
- 2. 修补程序透明度问题(FaceAlpha)
- 3. 修补程序datetime.timedelta.total_seconds
- 4. Esky修补程序
- 5. Java术语说明
- 6. 修补程序/修补程序的构建和交付方法
- 7. 用2'补码技术表示负数?
- 8. 修补程序错误:“检测到未反向的修补程序!跳过修补程序。”
- 9. 更改修补程序中的文件名或编辑修补程序,使修补程序保持有效
- 10. 使用方法修补程序覆盖类修补程序(修饰符)
- 11. JavaScript修补程序错误
- 12. 跨平台修补程序
- 13. Visual Studio 2008修补程序
- 14. Laravel修补程序AJAX
- 15. AWS Linux API修补程序
- 16. 选择性修补程序
- 17. 的ColdFusion 9.0.1修补程序
- 18. Azure WebApp修补程序
- 19. Cuteeditor在修补程序
- 20. ILMerge后修补程序
- 21. Alexa技能处理程序状态(Alexa.CreateStateHandler)说明
- 22. 图形修补程序实用程序
- 23. mint.com编程技术
- 24. 九个可修剪的修补程序
- 25. Visual Studio 2010修补程序[修复]
- 26. 修改文件中的修补程序
- 27. MSI修补程序未针对修补版本(错误2356)
- 28. 要在Android中创建九个可修补的修补程序?
- 29. 如何在Windows上完成修补MQ修补程序
- 30. 针对修补程序和修补程序等发布分支的Git rebase
你可以看看代码。 – Dipstick 2011-03-11 00:44:44
代码只有行号范围,带有+和 - 行可以删除和添加。 – David 2011-03-11 02:02:56