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

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


当前回答

我有一个奇怪的情况, 无论是git cleangit reset工作。 我必须将冲突文件从git index在每个未跟踪的文件中使用以下脚本 :

git rm [file]

那样我就能好好拉了

其他回答

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

. jutignore( )

public/images/*

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

我总结了其他答案 你可以执行git pull无错误 :

git fetch --all
git reset --hard origin/master
git reset --hard HEAD
git clean -f -d
git pull

警告警告警告警告:这个脚本非常强大,所以你可能会失去变化。

我也有类似的问题,我不得不这么做

git reset --hard HEAD
git clean -f
git pull

步骤1。 (可选择)
从本地主控件库的根根, 保存备份和空当前文件夹:

mkdir -p ../<branch>-bkp && mv --backup=t * ../<branch>-bkp

步骤2从远程仓库下载分支的所有文件和文件夹 :

git checkout <branch> && git add -A . && git reset --hard origin/<branch> && git pull

替换位置<branch>使用要覆盖的分支的名称。

评论:

  • 你可能更喜欢手动手动将当前文件和文件夹替换为步骤1.
    事实上,我建议建议建议建议建议在操作系统的 GUI 中与文件管理员一起这样做 。
  • 如果你跳过步骤1注意: 您将失去本地仓库的所有工作 !
  • 重要:如果你离开,git pull步骤2,
    您可能无法从远程仓库获取最新版本!
    根据下文的第二个参考,git reset --hard
    重置中继区和工作目录以匹配最近的承诺.
    我的经历与这个说法相矛盾!
  • 如果你逃跑git reset --hard origin/<branch_to_overwrite>不要先从本地主控库删除所有文件和文件夹, 请小心, 任何仍然埋在周围的垃圾文件都可能偷偷潜入远程仓库 。git push即使这不是你的本意
    额外git add -A .步骤2如果您选择退出, 防止发生这种情况步骤1.

参考文献:
https://gitforwindows.org/
https://www.atlassian.com/git/tutorials/undoing-changes/git-reset
https://www.atlassian.com/git/tutorials/rewriting-history/git-reflog

您可能会发现此命令有助于丢弃本地更改 :

git checkout <your-branch> -f

然后进行清理(从工作树上移走未追踪的文件) :

git clean -f

如果您想要除去未跟踪的文件之外, 还要删除未跟踪的目录 :

git clean -fd