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

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


当前回答

一种比较容易的方式是:

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

这将在 Git 上的文件上覆盖本地文件

其他回答

一种比较容易的方式是:

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

这将在 Git 上的文件上覆盖本地文件

我也有同样的问题,而且出于某种原因, 即使一个干净的Git -f -d也不会这样做。这就是为什么:由于某种原因,如果你的文件被Git忽略(通过.gitignore 项,我假设),它仍然费心于在稍后的拉动中覆盖这个文件,但清洁不会去除它,除非你加上 -x。

所需经费:

跟踪本地更改, 这样这里没有人会失去它们。 使本地存储库与远程源存储库匹配 。

解决方案 :

隐藏本地更改。 获取一个不看. gitignore 的文件和目录, 并硬重置到源头 。 git 隐藏 - 包含未跟踪的 git 抓取 - all git clean - fdx git 重置 - 硬源/ master

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

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 藏宝分支",虽然藏宝 可能会给你带来麻烦 在最初的几处尝试,

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

. jutignore( )

public/images/*

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