git - 一个奇怪的分支合并错误,我不确定如何解决

16

当我运行git status命令时,会出现以下错误信息:

# On branch master
# Your branch and 'origin/master' have diverged,
# and have 1 and 2 different commits each, respectively.
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   .gitignore
nothing added to commit but untracked files present (use "git add" to track)

所以我不能拉或推。当我拉的时候会出现这种情况:

macoss-MacBook-Pro-10:Marketing owner12$ git pull origin master
Password for 'https://genadinik@bitbucket.org': 
From https://bitbucket.org/genadinik/marketing
 * branch            master     -> FETCH_HEAD
error: The following untracked working tree files would be overwritten by merge:
    .DS_Store
Please move or remove them before you can merge.
Aborting

我该怎么做才能解决这个问题? 谢谢!


更改了标签,因为这个问题与它们中的所有5个都没有任何关系。 - borrrden
3个回答

63
rm .DS_Store
git add -A
git commit -m "Added .gitignore file"

您还需要明确将 .DS_Store 添加到您的 .gitignore 中,以便当未来不可避免地创建 .DS_Store时,它不会妨碍您的提交。


谢谢 - 你的意思是要执行这个命令 git commit -m "Added .gitignore file" 吗? - Genadinik
引号中的部分只是提交消息,可以是任何你想要的内容。 - warrenm
我不认为你做错了什么。我认为你需要学习基本的git使用,包括如何添加和忽略文件。 - warrenm
是的,那是正确的。我不太了解它。顺便问一下,删除 .DS_Store 是危险的吗?谢谢! - Genadinik
1
完全不用担心,这只是由OS X生成的元数据文件。大多数情况下,你会希望在.gitignore文件中加入.DS_Store条目,以避免此类情况。 - warrenm

1

你可能不关心 .DS_Store 文件。因此,尝试将其移动到 .DS_Store.bak 并重新拉取。


谢谢,但是它出现了错误:错误:合并时您对以下文件的本地更改将被覆盖:.gitignore - 您知道为什么会发生这种情况吗? - Genadinik
这是常规规定:origin/master 包含在您本地存储库中未被跟踪的文件。尝试添加它(使用 .gitignore 进行提交)。 - xvorsx

0

我认为你需要先使用add .命令添加文件,然后执行pullcommitpush命令。


pull命令出现错误:错误:合并时以下未跟踪的工作树文件将被覆盖:.DS_Store - Genadinik

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