0

几个星期以来,我一直在本地分支机构从事 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 status,然后看到了这个:

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 创建的。
为了解决这个问题,我尝试对每个文件进行小编辑并提交。我也尝试移动到我的开发分支,复制文件,然后将它们粘贴到我的主分支中。这使应用程序再次运行,但是当我尝试添加并提交它们时:

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 的了解有点初学者。我只使用了一年,但以前没有发生过这样的事情,我很困惑。

4

1 回答 1

2

每次构建/编译代码时都会生成这些文件,因此它们将在每次构建/编译操作时修改/删除

如何解决?

使用.gitignore

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


--assume-unchanged

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


于 2015-06-01T13:03:37.247 回答