error: The following untracked working tree files would be overwritten by merge:
翻译一下就是:
错误:以下未跟踪的工作树文件将被合并覆盖:
E:\09-code\06-Turbulent_flow_spectrum>git branch
dev_zgd
* master
E:\09-code\06-Turbulent_flow_spectrum>git pull origin master --allow-unrelated-historie
From http://10.35.161.175/zhaoguandong/mygitlabproject
* branch master -> FETCH_HEAD
error: The following untracked working tree files would be overwritten by merge:
.idea/workspace.xml
Please move or remove them before you merge.
Aborting
E:\09-code\06-Turbulent_flow_spectrum>
问题分析:
- 问题出在 Error 所列出的文件在本地的当前分支下未授权给 git 追踪,但同样命名的文件,也即出现在另一个(远程)分支下的同一文件却正在远程仓库或其它分支被 git 进行追踪,接下来的操作(git merge/checkout …)使得 git 需要呈现的是远程或另一个分支下被追踪的同名文件,但 git 并不知道该如何处理当前状态下这些未被追踪的同名文件,请求你将它们移开或删除,从而在你想要进行的操作之后直接呈现这些文件在目标状态下的版本。
解决方案
❓ 如果你想保留这些未追踪文件的变化
将这些提醒撞名的文件添加到 git 的追踪当中,并利用 stash 将这些文件的状态进行存放备份,然后执行你本来想要执行的 git 命令 overwrite 这些文件。实现:文章来源:https://www.toymoban.com/news/detail-503338.html
$ 1. 利用 add 将这些文件进行追踪
$ 2. git stash # 利用 stash 暂存这些文件的状态 【注:stash 将暂存当前状态下所有未 push 的改变】
$ 3. 执行你本来想要执行的命令 (git pull/merge/checkout ...)
❓ 这些文件已经过时或纯属冗余,别 bb,我就想 overwrite
那很简单,选择一切带有 -f 的操作,谨慎使用简单恐怖的 clean 命令。实现举例:文章来源地址https://www.toymoban.com/news/detail-503338.html
$ git checkout -f target-branch # override 未追踪但撞名的文件
到了这里,关于error: The following untracked working tree files would be overwritten by merge:的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!