git status 显示重命名但不正确
Posted
技术标签:
【中文标题】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.rb
和app/helpers/admin_helper.rb
还在,文件名没有重命名。
【参考方案1】:
如this thread所示
Git 不关心单个文件或重命名,它会跟踪整棵树。 它显示的重命名只是基于两个文件的内容的最佳猜测。
Git 状态是 perform rename detection using a heuristic. 但是一旦你提交,你会看到这两个文件是分开的。
【讨论】:
非常感谢。当我阅读perform rename detection using a heuristic 时,我再次出现了我的问题。以上是关于git status 显示重命名但不正确的主要内容,如果未能解决你的问题,请参考以下文章