我如何强制在 git pull 上覆盖本地文件 ? 我的本地仓库包含一个与服务器相同的文件名文件 。
错误: 未跟踪的工作树文件“ example. txt ” 会被合并覆盖
我如何强制在 git pull 上覆盖本地文件 ? 我的本地仓库包含一个与服务器相同的文件名文件 。
错误: 未跟踪的工作树文件“ example. txt ” 会被合并覆盖
当前回答
我所知道的是一个容易和不痛苦的方法:
$ git branch -m [branch_to_force_pull] tmp
$ git fetch
$ git checkout [branch_to_force_pull]
$ git branch -D tmp
就是这样!
其他回答
而不是做:
git fetch --all
git reset --hard origin/master
我建议采取以下行动:
git fetch origin master
git reset --hard origin/master
如果您要重置到源/ 主管分支, 不需要获取所有远程和分支 ?
您可以在您的工程基准文件夹中以文件忽略该文件 :
. jutignore( )
public/images/*
然后拉动修改,然后从您的 gitignore 文件中删除该行 。
警告: git clean 删除所有未跟踪的文件/目录, 无法撤销 。
有时只是干净 - f 帮不上忙。 如果您有未跟踪的目录, - d 选项也需要 :
# WARNING: this can't be undone!
git reset --hard HEAD
git clean -f -d
git pull
警告: git clean 删除所有未跟踪的文件/目录, 无法撤销 。
先考虑使用 -n (-- dry-run) 的标记。 这将显示要删除的内容, 但不实际删除任何内容 :
git clean -n -f -d
示例输出 :
Would remove untracked-file-1.txt
Would remove untracked-file-2.txt
Would remove untracked/folder
...
如果您不总是想要粘贴分支名称, 或者您想要在脚本中自动显示此分支名称, 这里是一个通用的解决方案 。
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 拖动, 您就会得到不匹配的文件列表。 如果文件数量不大, 那么您就可以检查这些文件, 此动作将会覆盖这些文件 。
git 检出 - & lt; filename & gt;
i 通常会这样做,如果为了快速检查我修改服务器上的本地文件(没有推荐的和在您得到这个问题:d背后的大致原因), i 在找到解决方案后检查已修改的文件。