Git 不断删除 Laravel Elixir (Gulp) 生成的文件

Git keeps deleting Laravel Elixir (Gulp) generated files

几周来我一直在本地 b运行ch 的 Laravel/AngularJS 项目上工作。

我在提交之前检查了状态,并得到了这些 Laravel Elixir 生成的文件:

modified:   public/angular_merge/all.js
modified:   public/angular_merge/all.js.map
renamed:    public/build/angular_merge/all-8b179644.js -> public/build/angular_merge/all-a1f3dc90.js
modified:   public/build/angular_merge/all.js.map
modified:   public/build/rev-manifest.json

我提交了我的更改,并将它们合并到 master 中,但合并时发生了冲突。我修复了冲突和 运行 一个 git 状态,并看到了这个:

deleted:    public/angular_merge/all.js
deleted:    public/build/angular_merge/all-a1f3dc90.js
deleted:    public/build/angular_merge/all.js.map
deleted:    public/build/rev-manifest.json

所有这些文件都是由 Elixir 创建的。
为了解决这个问题,我尝试对每个文件进行一个小的编辑并提交。我也试过移动到我的开发 b运行ch,复制文件,然后将它们粘贴到我的主 b运行ch 中。这让应用程序再次运行,但是当我尝试添加并提交它们时:

Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

deleted:    angular_merge/all.js
deleted:    angular_merge/all.js.map

Untracked files:
  (use "git add <file>..." to include in what will be committed)

public/angular_merge/all.js
public/build/

事实是,这些文件的旧版本已经在生产中,所以以前从未发生过。

我对 Git 的了解有点初级。我只用了一年,但以前没有发生过这样的事情,我很困惑。

每次您 build/compile 您的代码时都会生成这些文件,因此它们将 modified/deleted 在每个 build/compile 操作中

如何解决?

使用.gitignore

将这些文件添加到您的 .gitignore。通过这样做,它们将对 git 是“透明的”,因此您不会再在 git status 中看到它们。
但是如果它们已经提交到存储库,您必须将它们从暂存区中删除git rm --cached ...,提交这些更改,然后您将不会再看到它们。


--assume-unchanged

如果您想保留当前文件而不从存储库中删除它们,您可以使用 git update-index --assume-unchanged <file>.
此命令将暂时忽略给定文件中的更改。