我克隆了一个git
回购,我需要根据它开始一个新项目。
如何重命名,确保一切都得到妥善处理?
我正在使用 macOS 。
答案 0 :(得分:2)
基于nerdyworm's rename.sh,使用ack
我已将其修改为使用git grep
并轻松在 macOS 上运行。
• OTP NAME :应用程序的Snake Case(snake_case)名称。
• NAME :常规应用名称。
$ git grep -l $CURRENT_OTP | xargs sed -i '' -e "s/$CURRENT_OTP/$NEW_OTP/g"
$ git grep -l $CURRENT_NAME | xargs sed -i '' -e "s/$CURRENT_NAME/$NEW_NAME/g"
$ mv lib/$CURRENT_OTP lib/$NEW_OTP
$ mv lib/$CURRENT_OTP.ex lib/$NEW_OTP.ex
答案 1 :(得分:0)
我不知道如何以完美的准确度自动执行此操作,但这些是我在需要重命名Phoenix项目时手动执行的步骤。
以下命令假设您的代码位于git
个仓库中,旧应用程序为my_app
/ MyApp
,新应用为my_new_app
/ MyNewApp
。这个过程很脆弱 - 如果您的应用程序或模块名称可能出现在很多地方(例如,它只是一个字母A
或某些地方),那么这将不起作用。
# search replace both the application name and module name in all files indexed by git
$ git ls-files -z | xargs -0 perl -p -i -e 's/my_app/my_new_app/g; s/MyApp/MyNewApp/g;'
# rename `lib/my_app`
$ mv lib/my_app lib/my_new_app
之后我运行mix test
并修复任何编译错误或测试失败。
最后,我会对git diff
进行快速审核,以确保一切正常。