【问题标题】:git equivalent for renamegit 等价于重命名
【发布时间】:2016-09-29 10:31:21
【问题描述】:

在 bash 中,我可以使用 find . -name jndi.properties -exec rename 's/jndi/environment/' {} \; 递归查找所有 jndi.propertie 文件并将它们重命名为 environment.properties。

但是git status不识别mv,它分别显示删除和添加。如何递归git mv

【问题讨论】:

  • 找到 . -name jndi.properties -exec git mv 's/jndi/environment/' {} \;
  • man git-status。有一个选项可以检测重命名。从技术上讲,它是 git 内部的删除和添加

标签: git bash rename git-mv


【解决方案1】:

由于您正在对名称进行完全匹配,因此您实际上不需要进行动态替换,对吗?如果您的 find 支持它(BSD 和 GNU 支持,但在 POSIX 中未指定),您可以使用 -execdir 在目录中执行命令,这样您就可以这样做了

find . -name jndi.properties -execdir git mv {} environment.properties \;

【讨论】:

  • 这对 git status 没有帮助
  • 我不知道-execdir 的可能性。谢谢!
  • @AlexeyTen 似乎保留了状态的已删除部分,但我没有看到我的解决方案中的添加部分,所以它对git status有一半帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-02
  • 1970-01-01
  • 1970-01-01
  • 2015-06-22
  • 2014-02-10
  • 1970-01-01
  • 2016-03-09
相关资源
最近更新 更多