我的git file1.txt
中有repo
,最初的回购结构是
repo/
file1.txt
directory1/
file1.txt
有两次提交(当我尝试使用以下命令时显示两次提交)
git log -p file1.txt
后来我使用git命令将file1.txt
移动到directory1
git mv file1.txt directory1
然后新的回购结构是
repo/
directory1/file1.txt
但在移动该文件后,它不会使用
显示这两个提交 git log -p directory1/file1.txt
任何人都可以在移动这样的文件时帮助保存历史记录,还是有其他方法可以移动文件?
答案 0 :(得分:2)
Git没有明确记录移动(例如SVN就是这样)。每次提交都是整个州的快照。因此,如果您使用git mv A B
移动文件或使用mv A B && git add A B
移动文件,或以任何其他方式移动文件并添加此更改,则无关紧要 - 结果将完全相同。
Git提供了以各种方式查看历史记录的工具。在查看数据时,是否即时确定特定更改是否为重命名。
使用--follow
git log
选项将启用重命名检测。
git log --follow -- path/to/file
有时,当重命名文件时,也可能会更改其内容。根据内容的更改量,重命名检测可能不起作用 - 它成为重命名,删除和无关添加的问题。要更改需要匹配的文件的多少才能被视为重命名,请使用-M
选项。
git log -M40% --follow -- path/to/file
-M
选项也适用于其他命令,例如git diff
和git show
。
还有-C
,除了检测到副本外,它等同于-M
。
如果需要重命名文件并且其内容也会发生很大变化,那么如果可能的话,就是在单独的提交中进行重命名和内容修改。这样就可以在不需要调整的情况下检测重命名。
答案 1 :(得分:1)
保留历史记录,forwardedIP
默认情况下不会显示。您可以使用git log
标记来跟踪重命名或移动文件之外的更改:
--follow