在 NodeJS 生成的代码上使用 git

Using git on generated code with NodeJS

我有一个问题 Git 忽略我的服务器在本地仓库中所做的自动更改。我有一个生成器,它生成一个代码并将其存储在一个名为 "generated/" 的文件夹中。我正在为此使用 NodeJS,写入文件的过程是通过以下方式完成的:

fs.WriteFileSync();

根据文档,此函数:

synchronously writes data to a file, replacing the file if it already exists. data can be a string or a buffer.

"generated/" 文件夹中有一个 git 存储库,在每次代码生成结束时它会自动调用:

git add -A
git commit -m "message"
git push

这是假设将生成的代码推送到远程存储库。但事实并非如此。由于某种原因,它总是落后一代。如果我在第 1 代中生成代码并将其推送,则不会将任何更改推送到存储库。如果我在第 2 代中再次生成,第 1 代中的更改将被推送到存储库。总是落后一代。

我的猜测是因为我使用的函数替换了文件,Git 一开始不知道它,只推送了旧的更改。一旦我调用另一代,Git 终于知道在第一代代码中做了一些更改并推送了那一个。

希望我的描述是正确的。有谁知道如何解决它?我想我需要让 Git 知道文件已被替换,但我不知道如何替换。

有什么帮助吗?谢谢!

您可以找到所有未跟踪的文件并添加它们,

for i in `git ls-files --others --exclude-standard`
do
git add $i
done

或者只是更改的文件

for i in `git diff --name-only`
do
git add $i
done

继续您的提交和推送。