我如何强制在 git pull 上覆盖本地文件 ? 我的本地仓库包含一个与服务器相同的文件名文件 。
错误: 未跟踪的工作树文件“ example. txt ” 会被合并覆盖
我如何强制在 git pull 上覆盖本地文件 ? 我的本地仓库包含一个与服务器相同的文件名文件 。
错误: 未跟踪的工作树文件“ example. txt ” 会被合并覆盖
当前回答
我也有同样的问题 没人给我这个解决方案 但对我有用
我用下列方法解决了问题:
删除所有文件。 仅留下. git 目录。 git 重置 -- hard head git pull git push
现在起作用了
其他回答
"我的地方变化很小,或者我的地方变化不起作用。 我只是想重置一切 回到原创。 我知道所有的地方变化都会丢失。"
如果情况是这样的话:
git reset --hard
git pull
如果您不总是想要粘贴分支名称, 或者您想要在脚本中自动显示此分支名称, 这里是一个通用的解决方案 。
git fetch
git reset --keep origin/$(git rev-parse --abbrev-ref HEAD)
如果您也想重置本地更改 :
git fetch
git reset --hard origin/$(git rev-parse --abbrev-ref HEAD)
您也可以使用此命令添加一个弹片别名 :
alias gplf='git fetch && echo "HEAD was at $(git rev-parse --short HEAD)" && git reset --hard origin/$(git rev-parse --abbrev-ref HEAD)'
我认为答案是可怕的。但尽管刺绣猪的答案可能更好, 但我并不认为它是多么的优雅。 我发现这样做的方式是使用获取和合并 与定义的战略。 这样应该可以保存你的本地变化, 只要它们不是你试图强迫覆盖的文件之一。
首做您更改中的一次承诺
git add *
git commit -a -m "local file server commit message"
然后在发生冲突时获取更改并覆盖
git fetch origin master
git merge -s recursive -X theirs origin/master
- x 是一个选项名称, 而它们就是该选项的价值。 您选择使用它们的更改( 另一个选项是我们的更改) , 如果有冲突 。
所需经费:
跟踪本地更改, 这样这里没有人会失去它们。 使本地存储库与远程源存储库匹配 。
解决方案 :
隐藏本地更改。 获取一个不看. gitignore 的文件和目录, 并硬重置到源头 。 git 隐藏 - 包含未跟踪的 git 抓取 - all git clean - fdx git 重置 - 硬源/ master
我也有同样的问题 没人给我这个解决方案 但对我有用
我用下列方法解决了问题:
删除所有文件。 仅留下. git 目录。 git 重置 -- hard head git pull git push
现在起作用了