我被这个问题困扰了至少一个小时。我正在尝试使用命令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
从我的本地地图中删除它。
我读到这种情况是因为您有本地修改,导致合并不可能。
我读到其中一个解决方案是重置回头部:
git reset --hard HEAD
然后再次拉取:
git pull
.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
中。我可以用以下命令解决我的问题:
首先
git add *
第二个
git stash
git pull
或者
git add *
git stash
git pull origin master/{branch_name}
我遇到了与您相同的错误,所以我使用了git clean
命令。如果您键入git clean -n
,则会获得将被删除的项目列表。
如果您使用命令git clean -f
,则会获取未跟踪文件的列表并删除这些文件。
在使用git clean -f
命令后,键入git pull
,它将从您的存储库中拉取文件。
希望这对您有所帮助。