我已经在当地分公司工作了几个星期的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创建的 为了解决这个问题,我尝试对每个文件进行小编辑并提交。我也试过移动到我的dev分支,复制文件,然后在我的主分支中粘贴它们。这使应用程序再次运行,但是当我尝试添加并提交它们时:
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的了解有些初学者。我只用了一年,但之前没有发生过这样的事情,我很难过。
答案 0 :(得分:2)
每次构建/编译代码时都会生成这些文件,以便在每次构建/编译操作时修改/删除它们
.gitignore
将这些文件添加到.gitignore
。通过这样做,他们将变得透明&#34;为了让你不再在git status
中看到它们
但如果他们已经提交到存储库,则必须将它们从暂存区域git rm --cached ...
中删除,提交这些更改,然后您将不会再次看到它们。
--assume-unchanged
如果您想保留当前文件而不将其从存储库中删除,可以使用git update-index --assume-unchanged <file>
。
此命令将暂时忽略给定文件中的更改。