.DS_Store导致Git问题

时间:2016-10-03 21:57:04

标签: git macos

我最近成立了一个新的分支,致力于它,然后转回旧分支。

我试图查看新分支,但是我收到了这个错误:

error: The following untracked working tree files would be overwritten by checkout:
client/.DS_Store

所以,我做了一些谷歌搜索,并了解到这些应该在我的.gitignore中。所以我将它们添加到我的全球.gitignore中以防止将来出现此问题。但是这并没有解决我现在的问题,那就是当我使用这个命令来修复我已经看过建议的错误时,它不起作用,抛出以下错误:

git rm --cached client/.DS_Store
fatal: pathspec 'client/.DS_Store' did not match any files

我真的需要切换回我的另一个分支!我现在该怎么做?

编辑:我的新全球.gitignore:

# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so

# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip

# Logs and databases #
######################
*.log
*.sql
*.sqlite

# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

2 个答案:

答案 0 :(得分:1)

该文件夹的gitignore似乎不正确。

试试这个

# OS generated files #
######################
client/.DS_Store
## This one might be better
# **/.DS_Store

我相信这应该有效。

或者你可以尝试

git add . && git stash

这应该会让你到另一个分支,但你可能想要修复你的.gitignore。

答案 1 :(得分:0)

通常当你遇到阻止你更换树枝的文件时,你可以暂时存放它们然后再将它们弹出来,藏匿就像一个可以用来应对紧急情况的小狡猾的分支,只是不要忘记不要弹出它们你可能会给你的git工作流带来更多困惑。

Stash只存储已添加的文件,所以这就是我的工作。

  1. git status(检查是否有任何文件未跟踪)

  2. git add。 (仅当存在未跟踪的文件时)

  3. git stash(将文件隐藏在隐藏分支

  4. 现在你有一个“干净”的回购,你可以改变分支并做你想做的事情

  5. 你可能想要去你的第二个分支然后 git merge branchwithgitignore

    你可以做的一件事:

    git stash pop

    并且一切都应该在这里发挥作用。