我如何强制将本地文件覆盖在git pull我的本地仓库包含一个文件名文件名与服务器上的文件名相同。

错误: 未跟踪的工作树文件“ example. txt ” 会被合并覆盖


当前回答

这四个命令对我管用

git reset --hard HEAD
git checkout origin/master
git branch -D master
git checkout -b master

执行这些命令后检查/拉动

git pull origin master

我尝试了很多,但终于成功 与这些命令。

其他回答

我知道一种容易和痛苦的方法:

$ git branch -m [branch_to_force_pull] tmp
$ git fetch
$ git checkout [branch_to_force_pull]
$ git branch -D tmp

就是这样!

解决这一问题的另一种办法是,首先将任何未承诺的改动用git stash然后运行,然后运行

git pull --rebase=interactive -s recursive -X theirs

在互动的重新基础中,你可以改变你所有本地不想要的承诺drop,这将摆脱他们 并离开你 在远程分支的头部 而不引入合并承诺。

现在你可以跑了git stash apply如果你有 本地藏的改变 你想带回来。

比较容易的方式是:

git checkout --theirs /path/to/file.extension
git pull origin master

这将用 Git 上的文件覆盖您的本地文件

我也有同样的问题,而且出于某种原因,git clean -f -d这就是为什么:出于某种原因, 如果你的档案被Git(通过.gitignore 条目,我想,通过.gitignore 条目)忽略了, 它仍然费了时间,拉拉拉,但一个清洁除非添加, 否则不会删除它-x.

这儿有一个通用解决方案如果您不总是想要粘贴分支名称或想要粘贴分支名称在脚本中将此自动化

git fetch
git reset --keep origin/$(git rev-parse --abbrev-ref HEAD)

如果您也想重置本地更改 :

git fetch
git reset --hard origin/$(git rev-parse --abbrev-ref HEAD)

您也可以使用此命令添加一个 shall 别名 :

alias gplf='git fetch && echo "HEAD was at $(git rev-parse --short HEAD)" && git reset --hard origin/$(git rev-parse --abbrev-ref HEAD)'