Git将所有javascript重命名为typescript

Git将所有javascript重命名为typescript,git,bash,rename,Git,Bash,Rename,我正在将所有JavaScript文件迁移到typescript,首先我需要将现有的JavaScript文件扩展名转换为*.ts 要测试,我有以下命令,但此命令失败: 我总是觉得: fatal: not under version control, source=jscript/index.js, destination=jscript/index.ts 我的最终目标是递归地转到我的javascript文件夹,并将inplace从*.js重命名为*.ts似乎您忘记了将它们添加到Git。运行: g

我正在将所有JavaScript文件迁移到typescript,首先我需要将现有的JavaScript文件扩展名转换为*.ts

要测试,我有以下命令,但此命令失败:

我总是觉得:

fatal: not under version control, source=jscript/index.js, destination=jscript/index.ts

我的最终目标是递归地转到我的javascript文件夹,并将inplace从*.js重命名为*.ts

似乎您忘记了将它们添加到Git。运行:

git add --all :/
之后,您应该能够重命名。尽管我建议先承诺:

git add --all :/ && git commit -m update
注意: 如果您甚至还没有初始化回购协议,则需要先运行
git init

编辑:

根据您的评论,它不会进入子文件夹,因为您可能忘记使用
globstar
。添加行

shopt -s globstar
在使用
**

之前是的

我的案例的完整解决方案如下,我希望其他人也能使用它。只需将其放在回购的根文件夹中,并调整您使用的文件夹:

#!/usr/bin/env bash 
shopt -s globstar
for f in /public/jscript/*.min.js public/jscript/**/*.min.js; do
  git rm -r "$f"
done

# convert all the js files to ts files.
for f in public/jscript/**/*.js; do
  git mv "$f" "${f%.js}.ts"
done
我似乎总是得到:致命:不受版本控制,源=
jscript/index.js
,目标=
jscript/index.ts

错误消息告诉您,文件
jscript/index.js
尚未添加到Git存储库中。将所有
.js
文件添加到存储库,提交更改,然后重试脚本


但是您不需要使用
gitmv
。确保您的存储库处于干净状态,重命名工作树中的文件(您的脚本可能很好,只需使用常规的
mv
而不是
git mv
),然后将所有
.ts
文件添加到git。Git将检测到您重命名了文件,最终结果与
Git mv
中的结果相同

您的文件夹似乎不在git下…当我手动执行命令时,它确实起作用,从我通过bash将其放入for循环的那一刻起,它就失败了?您确定要在git repo中运行for循环吗?我在项目根目录中创建了rename.sh bash文件。我使用git bash来运行脚本。您试图“git mv”您的项目中的文件,这些文件也是“.gitignore”d,我怀疑。Owke,我已经对此进行了测试,实际上在repo方面出了问题。我再次克隆了我的git回购协议,然后它就开始工作了。现在,它的工作已经完成,它只转换文件夹根目录中的js文件,脚本并没有在所有子目录中都这样做folders@JanVanLooveren:您需要使用globstar使
**
按预期工作。您知道为什么这样做吗?您是如何选择这些特定目录的?就目前情况而言,这对其他有同样问题的人没有多大用处。
#!/usr/bin/env bash 
shopt -s globstar
for f in /public/jscript/*.min.js public/jscript/**/*.min.js; do
  git rm -r "$f"
done

# convert all the js files to ts files.
for f in public/jscript/**/*.js; do
  git mv "$f" "${f%.js}.ts"
done