git status 显示重命名但不正确

     2023-03-11     278

关键词:

【中文标题】git status 显示重命名但不正确【英文标题】:git status shows rename but it's incorrect 【发布时间】:2014-12-04 01:52:37 【问题描述】:

我使用 Rails 进行开发。我有一个名为cpc_admin_controller.rb 的控制器,完整路径是app/controllers/cpc_admin_controller.rb,还有一个名为admin_helper.rb 的助手,完整路径是app/helpers/admin_helper.rb。然后我从admin_helper.rb中删除一个方法到cpc_admin_controller.rb,保存,使用git提交。

但 git 显示消息如下

# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   renamed:    app/helpers/admin_helper.rb ->    app/controllers/cpc_admin_controller.rb
#   modified:   app/helpers/admin_helper.rb

我认为它应该显示两个这样的修改,而不是重命名的

# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   modified:   app/controllers/cpc_admin_controller.rb
#   modified:   app/helpers/admin_helper.rb

谁能帮帮我,告诉我为什么?

【问题讨论】:

最后,我提交,app/controllers/cpc_admin_controller.rbapp/helpers/admin_helper.rb 还在,文件名没有重命名。 【参考方案1】:

如this thread所示

Git 不关心单个文件或重命名,它会跟踪整棵树。 它显示的重命名只是基于两个文件的内容的最佳猜测。

Git 状态是 perform rename detection using a heuristic. 但是一旦你提交,你会看到这两个文件是分开的。

【讨论】:

非常感谢。当我阅读perform rename detection using a heuristic 时,我再次出现了我的问题。

如何使用 git 真正显示重命名文件的日志

】如何使用git真正显示重命名文件的日志【英文标题】:HowtoREALLYshowlogsofrenamedfileswithgit【发布时间】:2011-08-1006:24:37【问题描述】:我对Git比较陌生。我之前用过Subversion(SVN)。我注意到,如果文件已被重命名,大多数图形化Git... 查看详情

git gui app 显示检测到的重命名

】gitguiapp显示检测到的重命名【英文标题】:gitguiapptoshowdetectedrenames【发布时间】:2011-02-0617:51:54【问题描述】:是否有显示检测到的重命名的gitgui应用程序(用于提交)?Git-gui目前向我显示了许多已删除和新文件,而不是重... 查看详情

Git日志(--follow)无法显示重命名之外的历史记录

】Git日志(--follow)无法显示重命名之外的历史记录【英文标题】:Gitlog(--follow)notworkingtoshowhistrorybeyondrenames【发布时间】:2021-02-0320:10:57【问题描述】:我尝试通过gitlog在我的git中显示文件的完整历史记录。问题是这个文件的... 查看详情

为啥在交互式添加重命名文件后git在状态中显示“dev/null”?

】为啥在交互式添加重命名文件后git在状态中显示“dev/null”?【英文标题】:Whydoesgitshow"dev/null"instatusafterinteractiveaddofrenamedfile?为什么在交互式添加重命名文件后git在状态中显示“dev/null”?【发布时间】:2010-12-2403:04:5... 查看详情

在 git 文件重命名后使 Xcode 5 跟随历史

】在git文件重命名后使Xcode5跟随历史【英文标题】:MakeXcode5followhistoryaftergitfilerename【发布时间】:2014-06-0423:32:38【问题描述】:我正在尝试弄清楚如何在使用Xcode时使用git正确重命名文件。我做了一个测试项目,有几个提交,... 查看详情

处理重命名:svn vs. git vs. mercurial

】处理重命名:svnvs.gitvs.mercurial【英文标题】:Handlingrenames:svnvs.gitvs.mercurial【发布时间】:2010-12-0423:44:09【问题描述】:这些VCS如何处理重命名?我发现很多相互矛盾的信息表明git跟踪的是LOC(代码行)而不是文件,因此重命... 查看详情

wordpress实现附件上传自动重命名但不改变附件标题

...。如果上传文件名中包含中文字符,则会造成部分浏览器显示的文件URL疑似乱码甚至无法访问。网上流行较广的是通过注册  wp_handle_upload_prefilter 过滤器实现,但是该方案在重命名文件的同时也会将附件的标题修改,... 查看详情

git分支重命名(代码片段)

...itpushoriginnewName3、删除远程的旧分支gitpush--deleteoriginoldName显示如下,说明删除成功Tohttp://11.11.11.1 查看详情

git:重命名本地分支失败

...:*(nobranch)master代码看起来像是在另一个分支上,但输出显示它没有名称。然后我在网上搜索了如何重命 查看详情

如何重命名受保护的对象条目

】如何重命名受保护的对象条目【英文标题】:Howtorenameprotectedobjectentry【发布时间】:2021-11-0717:23:45【问题描述】:我想重命名Synchronized_Queue_InterfaceEnqueue条目,但不明白如何正确操作。withAda.Containers.Synchronized_Queue_Interfaces;withA... 查看详情

如何重命名本地git和GitHub中拼写错误的分支[重复]

】如何重命名本地git和GitHub中拼写错误的分支[重复]【英文标题】:HowtorenameabranchinlocalgitandGitHubthathasbeenspelledincorrectly[duplicate]【发布时间】:2021-10-2522:34:38【问题描述】:我在本地git上创建了一个分支,该分支成功运行并提交... 查看详情

如何重命名 .git 目录?

】如何重命名.git目录?【英文标题】:HowdoIrenamethe.gitdirectory?【发布时间】:2012-02-0315:32:30【问题描述】:如何重命名.git目录?举例来说,我有一个已经使用了一段时间的repo,但现在我决定重命名.git目录。我尝试了bashmv命令,... 查看详情

git:重命名文件并更改文件内容

】git:重命名文件并更改文件内容【英文标题】:git:renamefileandchangethecontentofthefile【发布时间】:2016-05-0919:53:33【问题描述】:我有一个关于在git中重命名文件的问题。我想重命名一个文件。所以我重命名它。据我了解,如果我... 查看详情

git远程仓库重命名了,本地如何提交

...blogs.com/anliux/p/10802615.html1.本仓库路径下执行:gitremote-v,显示只有一个:origin2在本地仓库删除远程仓库继续执行:gitremovermorigin3.本地添加远程仓库地址gitaddREADME.mdgitcommit-m"firstcommit"gitremoteaddorigin http://XX/test.git4.提交g... 查看详情

如何重命名本地 Git 分支?

】如何重命名本地Git分支?【英文标题】:HowdoIrenamealocalGitbranch?【发布时间】:2018-01-2718:18:43【问题描述】:我不想重命名远程分支,如RenamemasterbranchforbothlocalandremoteGitrepositories中所述。如何重命名尚未推送到远程存储库的本... 查看详情

git diff 重命名/移动和修改的文件,但跳过重命名/移动和相同的文件

...在使用:gitdiffHEAD--diff-filter=R-M使用融合外部差异工具来显示已重命名/移动和修改的文件。我总是在提交之前做一个 查看详情

git-重命名分支

gitbranch-mold_branchnew_branch 查看详情

git重命名文件(代码片段)

gitmvfile_namenew_file_namegitcommit-m'添加注释' 使用Git重命名文件-简书 查看详情