修改AuthenticatesUsers.php后git pull报错,该如何解决?
解决Git拉取时Vendor文件冲突的问题
先处理当前Git Pull报错
选项1:放弃本地对Vendor文件的修改(推荐,因为不该直接改依赖源码)
执行以下命令还原本地修改:
git checkout -- myproject_app/vendor/laravel/ui/auth-backend/AuthenticatesUsers.php
之后就能正常执行git pull拉取代码了。
选项2:需要保留修改逻辑(但不要直接改Vendor文件)
- 先暂存本地修改:
git stash
- 拉取远程代码:
git pull
- 恢复暂存的修改:
git stash pop
- 关键:迁移修改逻辑到自定义控制器
Laravel的认证逻辑应该通过重写控制器方法来修改,而非直接改动依赖包源码。比如找到项目里的app/Http/Controllers/Auth/LoginController.php(没有的话自行创建),让它继承AuthenticatesUsers,再重写你需要调整的方法(比如login、validateLogin等)。 - 放弃Vendor文件的修改:
git checkout -- myproject_app/vendor/laravel/ui/auth-backend/AuthenticatesUsers.php
解决.gitignore不生效的问题
因为你之前已经把Vendor目录提交到Git仓库了,.gitignore只对未被Git跟踪的文件生效,所以需要让Git停止跟踪Vendor目录:
- 执行命令移除Git对Vendor目录的跟踪(本地文件会保留,只是Git不再管控它):
git rm -r --cached myproject_app/vendor
- 确保你的.gitignore文件里已经添加了正确的路径:
# Laravel Vendor目录 myproject_app/vendor/
如果你的项目根目录就是myproject_app,只需要写vendor/即可。
3. 提交修改:
git add .gitignore git commit -m "不再跟踪vendor目录" git push
内容的提问来源于stack exchange,提问作者pheromix
相关产品推荐
相关产品推荐

