英文:
Cannot make git pull because of the file AuthenticatesUsers.php that I modified
问题
我在myproject_app/vendor/laravel/ui/auth-backend/AuthenticatesUsers.php
文件中进行了一些修改,然后将修改与其他文件一起推送。当我尝试进行git pull时,出现了错误:
error: Your local changes to the following files would be overwritten by merge:
myproject_app/vendor/laravel/ui/auth-backend/AuthenticatesUsers.php
Please commit your changes or stash them before you merge.
Aborting
那么如何修复这个问题?我尝试将tokenlite_app/vendor/laravel/ui/auth-backend/AuthenticatesUsers.php
添加到.gitignore文件中,但是得到了相同的结果。
英文:
I made some modifications in the myproject_app/vendor/laravel/ui/auth-backend/AuthenticatesUsers.php
; then I pushed the modifications with other files. When I tried to make git pull then I got error :
error: Your local changes to the following files would be overwritten by merge:
myproject_app/vendor/laravel/ui/auth-backend/AuthenticatesUsers.php
Please commit your changes or stash them before you merge.
Aborting
So how to fix it ? I tried to add tokenlite_app/vendor/laravel/ui/auth-backend/AuthenticatesUsers.php in the .gitignore file which I pushed after receiving the error, but got same results
答案1
得分: 1
在大多数情况下,Git提供的信息已经足够解决你在Git中遇到的问题。
"在合并之前,请提交你的更改或将其存储起来。"
根据错误信息,文件vendor/laravel/ui/auth-backend/AuthenticatesUsers.php
仍在被修改,你可以使用以下命令将其恢复:
git checkout vendor/laravel/ui/auth-backend/AuthenticatesUsers.php
或者
git restore <file>
如果你确实需要更新该文件,你可以直接提交它,但最好不要直接更新供应商文件,如果你真的迫切需要更新它,最好是先fork一份。或者检查该软件包是否有一些发布机制。
删除供应商文件等操作是无效的,因为你已经将供应商文件推送到仓库中,执行composer install/update只会生成一个新的供应商文件,你需要再次提交和推送新的供应商文件,并合并它,如果多个开发人员在同一个仓库上工作,可能会出现合并冲突的情况。
另外,如果你已经将文件推送到仓库中,后续忽略该文件并不像简单地将文件路径添加到.gitignore
那样简单,你需要在添加到.gitignore
后执行一些额外的步骤。请参考Stackoverflow上的这个问题获取更多信息:https://stackoverflow.com/a/1139797/8630903
英文:
In most cases, the message Git provides is more than enough to solve the issue you are facing in the git.
"Please commit your changes or stash them before you merge."
Seeing the error the file vendor/laravel/ui/auth-backend/AuthenticatesUsers.php
is still being modified either restore it back using
git checkout vendor/laravel/ui/auth-backend/AuthenticatesUsers.php
or
git restore <file>
You can just commit that file if you really need to update it, but vendor files should not be updated directly, it is better to fork if you are really in desperate need to update it. Or check if the package has some publish mechanism.
Deleting the vendors and such will not work since you have already pushed the vendor to the repo and doing composer install/update will just generate a new one which you need to again commit and push the new vendors and merge that, with the chance of merge conflicts if multiple developers are working on that repo.
Also, if you have already pushed the files to the repo, ignoring it afterwards is not simple like just adding that file path to .gitignore
, you will need to follow a few more steps after adding on the .gitignore.
Follow this Stackoverflow question for more info https://stackoverflow.com/a/1139797/8630903
答案2
得分: 0
在谷歌搜索后,我执行了git reset --hard命令,然后执行了composer update命令。
英文:
After googling I made a git reset --hard, then I made composer update.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论