git不跟随移动的文件

时间:2012-08-09 06:07:11

标签: xcode git version-control

我移动了我项目中的几个文件,但是我在我的mac上查找了finder。我看到git源代码控制将文件视为添加。

我还没有完成提交。 git status显示以下内容:

  • 在要提交的更改下,更新/移动的文件将列为新文件
  • 在未提交提交的更改下,更新/移动的文件列为已修改,原始文件列为已删除。

现在,当我在Xcode中与这些文件进行比较时,查看器没有历史记录。

我查看了已接受的答案here并尝试了git log --follow ./pathtomynewfile。这没有结果。

在版本编辑器中查看更改已成为一种有价值的工具,我希望在这种情况下继续。

我可以做些什么来将旧版本历史记录绑定到新的重定位版本?

5 个答案:

答案 0 :(得分:3)

在你提交之后,Git不一定会显示出一些“移动”。提交完成时不会识别此操作,但事后通过工具(例如git log --follow)完成。基本上,当Git工具看到历史中出现了一个新文件时,它会查找它可能来自的其他文件(如果在同一个提交中删除了相同或类似的文件,那么Git称之为移动)。

答案 1 :(得分:2)

使用git mvgit add新文件,git rm旧文件。在提交时,add和rm都需要在索引中,否则git不会将其识别为重命名。

答案 2 :(得分:0)

回滚更改,然后使用

  

git mv

这样,您的文件将被移动,git将跟踪移动,保留文件历史记录。

答案 3 :(得分:0)

git很可能会将此移动显示为deleteadd。当您将文件移出git时,Git会执行此操作。

结果是一样的。

答案 4 :(得分:-1)

您可以通过3个步骤转到上一个稳定版本的代码:

  • 使用git staging视图,删除所有暂存的文件。 (我不知道如何在mac下打开它)
  • 运行 git reset --hard HEAD 它将重置所有本地未提交的更改,但不会删除尚未添加到git的新添加的文件
  • 现在,手动删除git staging视图中显示的所有新文件。