git - Git:行之间的强制比较
问题描述
我目前正在使用 git 作为跟踪一些机器人源代码的一种方式,它或多或少地采用纯文本文件的形式。
使用 Git 的部分动机是,在会议中,我能够使用强大的 Visual Studio Code 扩展:Git Lens 拉出一个提交和另一个提交之间的差异比较。
这允许非技术精通的人(我通常向他们展示)获得关于代码中所做更改的简短口头历史,更改背后的动机(以提交消息的形式),以及作为屏幕上的图形,详细说明更改的字符(Gitlens UI 的形式)
直到今天一切都很顺利。一般来说,随着文件逐渐变化,每次我都能将文件中的差异拉出来并显示在屏幕上,并且通常逐行映射变化。
然而今天,整个文件经历了更具变革性的变化,现在git认为相同的行实际上并非如此。它认为有一堆缺失/删除的行实际上没有,并且还认为某些行不匹配时匹配。
我知道文件如何转换的一对一关系,如有必要,我有足够的时间手动执行此操作。我只是希望能够显示更改了哪些行,可能会强制显示 git 工具如何理解这些更改。我希望能够在会议中向人们展示这些更改,并将实际更改的线路排成一行。
侧面动机:到目前为止,我的公司采用版本控制的速度很慢。然而,有些人更喜欢使用版本控制,但大多数人都需要跟上速度。我能够解决这个问题的额外好处是我能够转身向其他人展示实物。
例子:
即使我不得不强制,如何让这两个提交正确排列?
提前致谢!
解决方案
平原git diff
给你什么?
我对Git Lens不熟悉,但是在命令行上你可以试试git diff --anchor="POSITIONER_BASE 1"
(从截图中很难看出“BASE”和“1”之间有多少空格,请根据实际数据调整)。这样做是将其余的差异从以该字符串开始的行中锚定。
git diff
有一些其他选项来指定差异算法。你也可以和他们一起玩。例如--minimal
,使其更难产生较小的差异。
推荐阅读
- macos - 我可以检测来宾是否正在使用 OSX 机器吗?
- java - 使用 getConstructor() 检查构造函数不带参数
- c# - 如何检测鼠标是否停止在 Unity 中移动
- java - CSS未在spring boot应用程序中加载
- ruby-on-rails - 无法访问最新版本 GitHub gem 中的功能
- android - 是否可以在 Nativescript 中使用矢量可绘制对象作为图像源?
- javascript - HtmlUnit 执行 Javascript 后如何获取页面
- c# - DrawArc 对圆形有效,但对椭圆无效
- javascript - 在异步调用中使用 Promise 进行递归
- java - hibernate & jpa:具有复合主键的表:自动增量问题