Git在.gitignore中不忽略某些Xcode文件。
Git在.gitignore中不忽略某些Xcode文件。
我对Git还很陌生,正在使用它来备份我正在开发的iPhone项目。
我已经添加了一个文件列表,告诉Git在我更新时忽略掉它们(xcode文件),但是这个.perspectivev3文件(已在我的.gitignore中)在我提交更改时仍然出现。有人知道为什么会这样吗?或者我做错了什么吗?
谢谢,
Zach
以下是我的.gitignore文件内容:
# xcode杂音
*.mode1v3
*.pbxuser
*.perspective
*.perspectivev3
*.pyc
*〜.nib/
build/*
# Textmate-如果你用它构建你的xcode项目
*.tm_build_errors
# 旧的skool
.svn
# osx杂音
.DS_Store
profile
问题的原因是:某些在.gitignore文件中指定忽略的Xcode文件没有被Git忽略。
解决方法是:
1. 使用命令git rm --cached ./whatever1.txt
来将已经在版本控制中的文件从Git中移除。
2. 如果你想从Git中移除名为"whatever1.txt"的文件,但保持你的工作目录不受影响,可以按照以下步骤进行操作:
- 执行命令git rm --cached ./whatever1.txt
- 执行命令echo /whatever1.txt >> ${PROJECT_ROOT}/.gitignore
(将/whatever1.txt添加到.gitignore文件中)
- 执行命令git status
(此时git status将显示./whatever1.txt为"deleted",gitignore文件为"modified"或"created")
- 执行命令git commit -a
(提交更改)
3. 当你想要将文件从工作目录和Git仓库中移除时,才使用git rm
命令。
4. 需要注意的是,这种方法通常用于从Git中移除IDE特定的文件。例如,在上述示例中,"whatever1"代表你要移除的IDE文件。如果你与其他人共同开发项目,并将此变更提交到共享仓库时,其他人在拉取此变更后,他们的"./whatever1"文件将被删除。在这种情况下,其他人可以执行以下命令来恢复被删除的文件:
- 执行命令git checkout 1215ef -- ./file-you-want-to-restore ./another-file ./another-etc
(其中1215ef代表删除之前的最后一次提交)
- 这将恢复到他们在拉取之前的最后一次提交时的文件状态。此后,这些文件将不再显示为未提交的文件,因为它们将符合.gitignore的排除规则。
祝好运!
问题原因:.gitignore文件只适用于未跟踪的文件。如果你已经使用git add命令将文件添加到仓库中,即使这些文件在.gitignore中被忽略,它们仍然会成为仓库的一部分。
解决方法:只需要从仓库中删除不再需要的文件即可。可以使用以下命令将文件从仓库中移除:
git rm *.perspectivev3
如果你在将文件添加到.gitignore之前已经添加了这个文件,那么移除文件后再提交更改时,该文件将不再存在,这样就解决了问题。
如果在.gitignore中忽略了某些文件,但在添加到.gitignore之前已经将这些文件添加到了仓库中,需要先将这些文件从仓库中移除,然后再提交更改。以上命令可以帮助你实现这一操作。