git - 为什么我不能 git pull 不相关的本地更改?

标签 git git-pull

在 git 中,你不能做 git pull如果您有任何未提交的修改,则会出现以下错误:

error: cannot pull with rebase: You have unstaged changes.

error: please commit or stash them.


但它适用于未跟踪的文件。我觉得这 super 烦人,我需要 git stash每次我想 pull ,即使我的更改与被 pull 的文件无关。
如果我的更改与 pull 的更改不冲突,是否有任何解决方法允许 pull ?我真的不明白为什么如果 pull 不会破坏任何东西,它为什么不起作用。如果这是一个安全问题,那么为什么它适用于新文件?理论上, pull 可以引入相同路径的新文件。
有什么解决方案可以让它更容易吗?

最佳答案

您可以使用 git pull --rebase --autostash .这实质上是存储您的本地更改,从远程获取,在其之上重新设置基础,并在一个命令中 pop 存储。

请注意,您还可以将这些标志配置为默认行为:

$ git config pull.rebase true
$ git config rebase.autoStash true

但是,强大的力量伴随着巨大的责任,只有在您绝对确定自己在做什么时才使用此选项。

关于git - 为什么我不能 git pull 不相关的本地更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52521829/

相关文章:

git: pull 特定分支,只保留最新的树(没有任何历史记录)

git - 错误 : The following untracked working tree files would be overwritten by merge: . DS_Store

windows - 在没有 Atlassian 帐户的情况下安装 SourceTree?

linux - OpenShift WordPress 主题开发人员工作流程

Gitlab 7.3.2 权限被拒绝(公钥)

linux - git pull/push 返回 : fatal: protocol error: bad line length character: _

eclipse - EGit:发出快进 pull 〜如何在 EGit 中配置远程存储库的提取

git - 如何防止 Git pull 删除本地文件

Git checkout 失败,因为本地更改...没有本地更改?

git - 将所有根目录移动到子文件夹中