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

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


当前回答

我刚刚解决了这个问题 自己:

git checkout -b tmp # "tmp" or pick a better name for your local changes branch
git add -A
git commit -m 'tmp'
git pull
git checkout master # Or whatever branch you were on originally
git pull
git diff tmp

最后一个命令给出您本地更改的列表。 继续修改“ tmp” 分支, 直至它可以接受, 然后将它合并为母版 :

git checkout master && git merge tmp

下次,你也许可以用更干净的方式处理这件事, 找到"Git 藏宝分支",虽然藏宝在最初的几例尝试中 可能会给你带来麻烦, 所以首先试验一个非关键项目...

其他回答

看起来最好的办法是首先做到:

git clean

删除所有未跟踪的文件,然后继续按常规git pull...

我读了所有的答案,但我正在寻找一个命令来做到这一点。这是我所做的。在.gitconfig中添加了一个Git 化名。

[alias]
      fp = "!f(){ git fetch ${1} ${2} && git reset --hard ${1}/${2};};f"

将命令运行为

git fp origin master

等于

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

如果您正在制定您的代码, 发现新的更改是一个巨大的错误或意外, 您可以简单地使用其他选项, 比如 :

git restore .

。指目录中的所有文件。

我也有类似的问题,我不得不这么做

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

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