我在分支feature/branch1
,git status
列出了.gitignore
文件中的两个文件。当我尝试结帐到develop
分支时,git会阻止我发送此消息:
error: Your local changes to the following files would be overwritten by checkout:
XXXXXXX.xcworkspace/xcuserdata/XXXX.xcuserdatad/UserInterfaceState.xcuserstate
Please, commit your changes or stash them before you can switch branches.
Aborting
然后我尝试添加这些文件,尽管它们列在.gitignore
文件中,所以我收到了这条消息:
The following paths are ignored by one of your .gitignore files:
XXXXXXX.xcworkspace
Use -f if you really want to add them.
fatal: no files added
为什么git要我添加这些文件?是因为它们在develop
分支中不被忽略。处理这种情况的最佳选择是什么?提前完成。
答案 0 :(得分:2)
问题是你有本地目录中的文件,尽管它们没有被git版本化。并且git checkout正试图引入这些版本化的文件。 Git告诉你它正在尝试覆盖文件,但它们没有版本化,所以你有两个选择:
git add -f <ignored files>
)要查看repo目录中的所有被忽略文件,请运行:
git status --ignored
这将列出您的所有忽略文件,在此处您可以决定是否要在运行git checkout <branch>
之前移动,删除或更新它们。
签出此分支后,您可能还需要考虑从您尝试签出的分支进入的被忽略的文件确实不应该提交给git仓库,您可以从仓库中删除文件而不删除它们:
git rm --cached <files>