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

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


当前回答

对我唯一有用的是:

git reset --hard HEAD~5

这会让你背了五次承诺,然后

git pull

我通过向上看才发现如何解除 Git 合并.

其他回答

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

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 cleangit reset工作。 我必须将冲突文件从git index在每个未跟踪的文件中使用以下脚本 :

git rm [file]

那样我就能好好拉了

“我的地方变化很小,或者我的地方变化不起作用。我只想将一切重置回到原创。我知道我的地方变化都将失去。”

如果情况是这样的话:

git reset --hard
git pull

1: 重置为上一个承诺

git reset --hard HEAD

2: 删除未跟踪文件

git clean -f

3: 作出承诺

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)

您也可以使用此命令添加一个 shall 别名 :

alias gplf='git fetch && echo "HEAD was at $(git rev-parse --short HEAD)" && git reset --hard origin/$(git rev-parse --abbrev-ref HEAD)'