下面未跟踪的工作树文件将会被合并覆盖:.gitignore。在合并前,请移动或删除它们。

3

我被这个问题困扰了至少一个小时。我正在尝试使用命令git pull拉取文件。

error: The following untracked working tree files would be overwritten by merge:
    .gitignore
Please move or remove them before you can merge.
Aborting

我试图用rm .gitignore从我的本地地图中删除它。

4个回答

4

我读到这种情况是因为您有本地修改,导致合并不可能。

我读到其中一个解决方案是重置回头部:

git reset --hard HEAD

然后再次拉取:

git pull

你可以考虑先提交或存储你自己的更改。
我不确定,但你是否已经看到这个问题:git - 奇怪的分支合并错误,我不确定如何解决?看起来Genadinik有同样的问题。

4
您有一个本地未提交的 .gitignore 文件,而您正在尝试拉取的更改包含一个已跟踪的 .gitignore 文件。Git 拒绝使用上游的文件覆盖您的 .gitignore,因为它无法将旧文件返回给您(该文件未被跟踪)。
一般来说,我建议使用 git fetch 而不是 git pull。这将更新您的本地 origin/master,但不会更新您的本地 master。然后,您可以比较 origin/master 中已跟踪的 .gitignore 与您的本地 .gitignore 文件。这是唯一决定是否保留其中一个或将它们合并在一起的方法。
不幸的是,由于您的本地 .gitignore 文件没有被跟踪,因此自动比较有些棘手。我建议先将其提交,然后使用 git diff master..origin/master 或甚至只是 git merge origin/master。现在,您的 .gitignore 已经被跟踪,Git 将不会拒绝合并(但您可能会遇到需要解决的合并冲突)。
请注意,通常情况下,.gitignore 应该被跟踪。如果您有不应该被跟踪的忽略文件,请将它们放在 .git/info/exclude 中。

0

我可以用以下命令解决我的问题:

首先

git add * 

第二个

git stash
git pull

或者

git add *
git stash
git pull origin master/{branch_name}

0

我遇到了与您相同的错误,所以我使用了git clean命令。如果您键入git clean -n,则会获得将被删除的项目列表。 如果您使用命令git clean -f,则会获取未跟踪文件的列表并删除这些文件。 在使用git clean -f命令后,键入git pull,它将从您的存储库中拉取文件。 希望这对您有所帮助。


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