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

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


当前回答

将索引和头重置为源/ 主机,但不重置工作树 :

git reset origin/master

其他回答

我有一个奇怪的状况, 无论是git clean or git reset works. 我必须在每一个未跟踪的文件上使用以下脚本, 从 git 索引中删除冲突文件 :

git rm [file]

那样我就能好好拉了

您可能会发现此命令有助于丢弃本地更改 :

git checkout <your-branch> -f

然后进行清理( 从工作树上移走未跟踪的文件) :

git clean -f

如果您想要除去未跟踪的文件之外, 还要删除未跟踪的目录 :

git clean -fd

这里的答案似乎大多集中在主分支上; 但是,有时我在两个不同的地方 研究同一个功能分支, 我希望一个在另一个在重新基点上得到反映, 而不是跳过很多圈子。

根据Rna的回答和Torek对类似问题的回答, 我得出了一个非常有效的答案:

git fetch
git reset --hard @{u}

从一个分支运行它, 它只会重新设置你的地方分支 到上游版本。

也可以将它写进别名(git strengpull)中:

git 配置别名.forcepull "! git 获取; git 重设 - hard u}"

或者,在您的. git config 文件 :

[alias]
  forcepull = "!git fetch ; git reset --hard @{u}"

享受吧!

而不是做:

git fetch --all
git reset --hard origin/master

我建议采取以下行动:

git fetch origin master
git reset --hard origin/master

如果您要重置到源/ 主管分支, 不需要获取所有远程和分支 ?

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

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

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