我如何强制在 git pull 上覆盖本地文件 ? 我的本地仓库包含一个与服务器相同的文件名文件 。
错误: 未跟踪的工作树文件“ example. txt ” 会被合并覆盖
我如何强制在 git pull 上覆盖本地文件 ? 我的本地仓库包含一个与服务器相同的文件名文件 。
错误: 未跟踪的工作树文件“ example. txt ” 会被合并覆盖
当前回答
而不是做:
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
警告: 此脚本非常强大, 这样您就可以丢失更改 。
您可能会发现此命令有助于丢弃本地更改 :
git checkout <your-branch> -f
然后进行清理( 从工作树上移走未跟踪的文件) :
git clean -f
如果您想要除去未跟踪的文件之外, 还要删除未跟踪的目录 :
git clean -fd
如果您不总是想要粘贴分支名称, 或者您想要在脚本中自动显示此分支名称, 这里是一个通用的解决方案 。
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 reset --hard HEAD
git pull
看起来最好的办法是首先做到:
git clean
以删除所有未跟踪的文件,然后继续使用通常的 Git 调用...