精确的git提交

精确的git提交,git,version-control,github,Git,Version Control,Github,如果我有一些代码,比如 /** * blah blah blah */ ...some codes... /** * yadda yadda 然后我加上 /** * blah blah blah */ ...some codes... /** * blah blah blah */ ...some codes... 在yadda yadda commanet之前,git diff将显示我添加了: + * blah blah blah + */ + ...some c

如果我有一些代码,比如

/**
 * blah blah blah
 */
...some codes...
/**
 * yadda yadda
然后我加上

/**
 * blah blah blah
 */
...some codes...
/**
 * blah blah blah
 */
...some codes...
在yadda yadda commanet之前,git diff将显示我添加了:

 +  * blah blah blah
 +  */
 +  ...some codes...
 + /**

有没有办法告诉吉特,嘿,那不对。再试一次。?我知道-耐心,但这似乎只是对git diff和我的生活,它从来没有正确的工作。我知道这并不特别重要,但它使diff和commit日志(尤其是在GitHub上)更加干净。

Git在存储库中存储文件的方式是基于整个文件的。当您要求两个版本之间的差异时,Git从repository1检索两个完整的文件,并在它们之间运行diff算法。与其他一些源代码管理系统不同,Git在提交时不计算或存储文件之间的差异

此方法的优点是,在您请求时可以轻松更改差异的行为。例如,您看到了-patience标志,它使用不同的diff算法来确定两个文件之间可能更好的补丁

由于文件存储在Git存储库中的方式,无法告诉Git以某种方式跟踪自定义差异对齐

在Git存储库的深处,在.pack文件中,Git使用各种增量编码方法来存储相似对象之间的差异,从而减小存储库的大小。但是,这比文件存储的级别低,并且不是源文件之间的实际差异。
Git在存储库中存储文件的方式是基于整个文件的。当您要求两个版本之间的差异时,Git从repository1检索两个完整的文件,并在它们之间运行diff算法。与其他一些源代码管理系统不同,Git在提交时不计算或存储文件之间的差异

此方法的优点是,在您请求时可以轻松更改差异的行为。例如,您看到了-patience标志,它使用不同的diff算法来确定两个文件之间可能更好的补丁

由于文件存储在Git存储库中的方式,无法告诉Git以某种方式跟踪自定义差异对齐

在Git存储库的深处,在.pack文件中,Git使用各种增量编码方法来存储相似对象之间的差异,从而减小存储库的大小。但是,这比文件存储的级别低,并且不是源文件之间的实际差异。
我很想知道你为什么认为这不对?您所做的更改可以用多种方式进行解释,git选择了一种可以产生正确结果的方法,因为它可以将第一个示例转换为第二个示例。我也经历过这样的情况,-patience标志似乎没有按照文档所述的那样起作用,但我还没有弄清楚原因。从技术上讲,这不是我补充的。我完全理解这个变化可能会有不同的解释,这就是为什么我的问题是我能告诉git换一个角度看吗way@OscarGodson你应该重新命名你的问题,因为你似乎想改变差异呈现给你的方式,这看起来与提交没有任何关系。找到了这些资源,它们可能对-耐心感兴趣:1,2。我很想知道你为什么将其归类为不正确?您所做的更改可以用多种方式进行解释,git选择了一种可以产生正确结果的方法,因为它可以将第一个示例转换为第二个示例。我也经历过这样的情况,-patience标志似乎没有按照文档所述的那样起作用,但我还没有弄清楚原因。从技术上讲,这不是我补充的。我完全理解这个变化可能会有不同的解释,这就是为什么我的问题是我能告诉git换一个角度看吗way@OscarGodson你应该重新命名你的问题,因为你似乎想改变差异呈现给你的方式,这看起来与提交没有任何关系。找到了这些可能感兴趣的资源-耐心:1,2。谢谢,简而言之,不:谢谢你的完整解释。非常有帮助。谢谢,简言之,不,谢谢你的充分解释。非常有用。