当我使用git-mv在git中移动文件时,状态显示该文件已被重命名,即使我改变了一些部分,它仍然认为是几乎相同的东西(这很好,因为它让我可以跟踪它的历史) .
当我复制文件时,原始文件有一些我想与新副本关联的历史记录.
我试过移动文件,然后尝试在原始位置重新结账 - 一旦移动git将不允许我签出原始位置.
我试过做一个文件系统副本,然后添加文件 - git将其列为新文件.
有没有办法让git记录文件复制操作的方式与记录文件重命名/移动的方式类似,历史记录可以追溯到原始文件?
Jak*_*ski 110
Git不会重命名跟踪也不会复制跟踪,这意味着它不会记录重命名或副本.它的作用是重命名和复制检测.您可以使用选项在git diff(和git show)中请求重命名检测-M,您可以使用-C选项(-C隐含-M)请求在已更改的文件中进行额外的副本检测,并且您可以在所有文件中使用--find-copies-harder或请求更昂贵的副本检测-C -C(这意味着-C,这意味着-M).请参阅git-diff联机帮助页.
您还可以将git配置为始终通过设置diff.renames为布尔值true(例如true或1)进行重命名检测,并且您可以通过将其设置为copy或来请求git进行复制检测copies.请参阅git-config联机帮助页.
还要检查-l选项git diff和相关的配置变量diff.renameLimit.
请注意,git log <pathspec>在Git 中的工作方式不同:这里<pathspec>是路径分隔符集,其中path可以是(子)目录名.在重命名和复制检测发挥作用之前,它会过滤并简化历史记录.如果要关注重命名和副本,请使用git log --follow <filename>(目前有点限制,仅适用于单个文件).
Rob*_*lak 37
您可以强制Git检测复制文件的历史记录:
(解决方案取自/sf/answers/3082574001/.)
| 归档时间: |
|
| 查看次数: |
40768 次 |
| 最近记录: |