git - 如何告诉 Git 这是同一个目录,只是名称不同

标签 git

在克服了一些学习 Git 的障碍之后,我遇到了一个新的挑战:重命名目录(在本地,在工作目录中)。

当我键入 git status 时,它会列出旧目录名称中的所有文件(新目录中的文件名完全相同)作为 deleted 和新目录名称为“未跟踪”。

有没有办法告诉 Git “它实际上是同一个目录,只是名称不同”?

这样所有的文件都会被 git status 列为仅被修改?

为了举例说明问题,这是我重命名整个目录时从 git status 收到的输出:

git status
# On branch master
# Changes not staged for commit:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   deleted:    old-dir-name/file1
#   deleted:    old-dir-name/file2
#   deleted:    old-dir-name/file3
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   new-dir-name/
no changes added to commit (use "git add" and/or "git commit -a")
~/sb/ws>

最佳答案

只需git add 目录的新名称。 Git 不会明确地跟踪重命名,它只是在稍后检测到它们。 git mv 的执行效率可能稍高(因为它可以直接更新索引),但效果完全相同。

关于git - 如何告诉 Git 这是同一个目录,只是名称不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6628539/

相关文章:

git - 您可以将多个自定义域添加到多个 Github 存储库吗?

Git 分支 Bash 变量快捷方式

git - 使用 SVN 连接到 git 存储库

Git Svn clone 某些修订版,并在未来继续克隆其他修订版

Git网站部署

php - 你可以通过这种方式让我的生活变得更轻松吗? (庞大的代码库和补丁问题)

java - 要推送什么到 Git?

git - Hunk 在简单补丁上失败,我应该如何解释拒绝文件?

git - 如何从命令行使用 'git pull'?

git push,不要推送所有本地提交