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

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


当前回答

i 总结了其他答案。 您可以执行 Git 调用, 且不出错 :

git fetch --all
git reset --hard origin/master
git reset --hard HEAD
git clean -f -d
git pull

警告: 此脚本非常强大, 这样您就可以丢失更改 。

其他回答

我有一个类似的问题。 我必须这样做:

git reset --hard HEAD
git clean -f
git pull

只是做做

git fetch origin branchname
git checkout -f origin/branchname // This will overwrite ONLY new included files
git checkout branchname
git merge origin/branchname

来避免所有不想要的副作用,例如删除您想要保存的文件或目录等。

您可以在您的工程基准文件夹中以文件忽略该文件 :

. jutignore( )

public/images/*

然后拉动修改,然后从您的 gitignore 文件中删除该行 。

git restore file_to_override_from_remote

git pull

警告,如果您在 gitignore 文件中有任何目录/ * 条目, 这样做将会永久删除您的文件 。

@lauri在 @lauri 遭遇时, 听从David avsajanishvili的建议,

而不是 (git> v1.7.6):

git stash --include-untracked
git pull

稍后您可以清理藏匿历史。

手动,一个一个一个:

$ git stash list
stash@{0}: WIP on <branch>: ...
stash@{1}: WIP on <branch>: ...

$ git stash drop stash@{0}
$ git stash drop stash@{1}

残忍地, 一次一次地:

$ git stash clear

当然,如果你想回到你藏的东西:

$ git stash list
...
$ git stash apply stash@{5}