我最近成立了一个新的分支,致力于它,然后转回旧分支。
我试图查看新分支,但是我收到了这个错误:
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
答案 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只存储已添加的文件,所以这就是我的工作。
git status(检查是否有任何文件未跟踪)
git add。 (仅当存在未跟踪的文件时)
git stash(将文件隐藏在隐藏分支
现在你有一个“干净”的回购,你可以改变分支并做你想做的事情
你可能想要去你的第二个分支然后 git merge branchwithgitignore
你可以做的一件事:
git stash pop
并且一切都应该在这里发挥作用。