2

我移动了我的项目中的几个文件,但我在我的 Mac 上进行了内部 finder 的移动。我看到 git 源代码控制将文件视为添加。

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

  • 在要提交的更改下,更新/移动的文件列为新文件
  • 在 Changes not staged for commit 下,更新/移动的文件列为已修改,原始文件列为已删除。

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

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

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

我可以做些什么来将旧版本历史记录与新的、重新定位的版本联系起来?

4

5 回答 5

3

在您提交之前,Git 不一定会将某些内容显示为“移动”。此操作在提交完成时不会被识别,而是在事后通过工具(例如git log --follow)完成。基本上,当 Git 工具看到一个新文件出现在历史记录中时,它会四处寻找它可能来自的其他文件(如果相同或相似的文件在同一次提交中被删除,那么 Git 称之为移动)。

于 2012-08-09T06:10:33.767 回答
2

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

于 2012-08-09T07:47:01.480 回答
0

回滚更改,然后使用

git mv

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

于 2012-08-09T06:28:36.873 回答
0

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

结果是一样的。

于 2012-08-09T07:56:26.553 回答
-1

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

  • 使用 git 暂存视图,删除所有暂存文件。(不知道mac下怎么打开)
  • 运行git reset --hard HEAD 它将重置您所有本地未提交的更改,但不会删除尚未添加到 git 的新添加的文件
  • 现在,手动删除 git staging 视图中显示的所有新文件。
于 2012-08-09T06:16:13.030 回答