git repquest中止,“对以下文件的本地更改将被合并覆盖”

问题描述 投票:0回答:2

我在ubuntu服务器中有一个codeigniter项目

我通常将文件上传到bitbucket。然后在ubuntu服务器中,我从位存储桶中提取文件

但是在项目中,用户在网站的前端上传图像。

当我拉时,git说本地包含不在远程的更改并中止拉动

所以我打了

git add .
git commit -m "message"
git pull

这是正确的方法吗?

我需要从git中排除上载文件夹吗?

文件夹结构

var/ww/html

application
uploads
.git
git github bitbucket git-push ubuntu-server
2个回答
1
投票

方法1:强制拉取以覆盖本地更改

如果您不在乎本地所做的更改,并且想从存储库中获取代码,则可以强制执行拉取。这将覆盖您在计算机上所做的所有本地更改,系统将在存储库中显示该版本的副本。

git reset -- hard

git pull

方法2:保留两个更改(本地和来自仓库)

git add $the_file_under_error

git commit

git pull

方法3:保留两个更改但不提交

git stash

git pull

git stash pop

如果弹出存储区后发生一些冲突,则应以通常的方式解决它们。您也可以使用以下命令:

git stash apply

如果合并似乎不可行,请考虑进行基准调整。变基是将一系列提交移动或合并到新的基本提交的过程。在重新定级的情况下,将代码更改为:

git stash

git pull --rebase origin master

git stash pop
  • 如果要从工作副本中删除所有本地更改,只需将它们存储起来:

    git stash save --keep-index

  • 如果您不再需要它们,您现在可以放下藏匿处:

    git stash drop


0
投票

通常,用户上载不应被视为代码存储库的一部分。您可以通过打开“ .gitignore”并添加“ uploads / *”行来告诉git忽略该文件夹

[这将防止git跟踪对上载目录的更改,因此,当用户上载文件时,它将不会看到代码更改,也不会看到远程分支位于本地分支的前面。] >

但是,您收到的错误指示您的本地分支具有远程服务器没有的更新(这意味着它在前面)。假设没有其他开发人员(或用户)正在编辑您的远程分支,则可以通过在进行更改之前调用“ git pull”,然后将更改添加,提交并推送到远程来完成此操作。

[如果您已经进行了更改,然后进行了远程更改,则可以通过调用'git stash'将更改存储在其他位置来解决此问题,然后再将'git stash apply'撤回到远程之后,将其恢复分支。

© www.soinside.com 2019 - 2024. All rights reserved.