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>
.
此命令将暂时忽略给定文件中的更改。
几周来我一直在本地 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>
.
此命令将暂时忽略给定文件中的更改。