Git pull-以下未跟踪的工作树文件将被合并覆盖。

8

我正在尝试在主分支执行git pull,但是我看到了一个长长的文件列表和以下信息:


The following untracked working tree files would be overwritten by merge:

我并不在意这些文件是否被覆盖,因为我需要从远程获取最新的版本。我已经调查过了,我无法执行git fetchgit add *git reset HARD

当我执行git status时,仅显示未跟踪文件的列表。我不想提交这些文件


你确定这些文件不是你正在pull的git仓库的一部分吗?当我在一个目录中有未提交的test.4gl文件,并将其作为我正在pull的git仓库的一部分时,我也收到了这个消息。因为我只使用git一年,所以很容易误解正在发生的事情。 - octopusgrabbus
这些文件是我的git仓库的一部分,但我想要它们被覆盖在主分支上。 - baig772
我刚刚更新了我的回答。 - octopusgrabbus
3个回答

9

在从远程仓库拉取代码之前,您可以删除未跟踪的文件。

git clean -f

添加标志n以查看将被删除的文件的模拟运行情况。

git clean -f -n

7
尝试过这个,但在执行git pull时仍然看到相同的错误信息。 - baig772

2

我刚刚进行了一项测试,以查看是什么导致了这个错误。

1) 我在我的主git开发目录中创建了test.txt,并将其添加到git中。

2) 我在我们生产系统上的git目录中创建了test.txt作为未跟踪的文件。通常情况下,我会从开发(主分支)推送到一个裸git存储库远程,在开发系统(主分支)从同一个裸git存储库拉取。

3) 我得到了您的错误:

[ics@bucky ics_client]$ git pull origin
gituser@h2oamr's password: 
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 4 (delta 2), reused 0 (delta 0)
Unpacking objects: 100% (4/4), done.
From h2oamr:ics_client
   193ac65..a6da6b2  master     -> origin/master
Updating 193ac65..a6da6b2
error: Untracked working tree file 'test.txt' would be overwritten by merge.  Aborting
[ics@bucky ics_client]$ 

您可以将这些文件移动到安全的地方,但在执行pull操作后要非常小心。如果您将之前移动的未跟踪文件移回git目录,您将覆盖所获取的内容。
您还可以将这些文件添加到git中,然后再进行pull操作。
或者,您可以从您正在拉取的git存储库中删除这些文件,但我不建议这样做。
回应您的评论:
“这些文件是我的git repo的一部分,但我希望它们被覆盖在主分支上。”
因为我对git不完全熟悉,所以我会通过ftp将它们传输到主目录并在那里更新这些文件。您可能也可以这样做,将这些文件移动到安全的地方,在执行pull操作后将其带回,并从卫星git目录更新,然后从卫星git存储库拉取到主目录。
个人而言,我会采用较长的方式——将更改的文件带到主目录——在那里进行更新,并重新从卫星拉取。

1

Please try with this command. git clean -f -d


没有任何解释?即使它有效,这也没有帮助。 - Nick Koprowicz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接