我正在努力解决合并冲突的问题(请参阅由于与 UserInterfaceState.xcuserstate 冲突而无法合并 https://stackoverflow.com/questions/13870652/cannot-merge-due-to-conflict-with-userinterfacestate-xcuserstate)。根据反馈,我需要使用 git rm 删除 UserInterfaceState.xcuserstate。
经过大量实验后,我能够使用“git rm -rf project.xcworkspace/xcuserdata”删除该文件。因此,当我在正在处理的分支上时,它几乎立即作为需要提交的文件返回。所以我再次对文件执行 git rm 并切换回 master。然后我再次对该文件执行 git rm 。该操作再次删除了该文件。
但我仍然被困住了。如果我尝试将分支合并到主分支中,它会再次表示我有未提交的更改。所以我去提交更改。但这一次,它显示 UserInterfaceState.xcuserstate 作为要提交的文件,但该框未选中,无法选中。所以我无法前进。我什至无法切换回我的分支。文件 UserInterfaceState.xcuserstate 显示它处于“D”状态,这显然意味着它已被删除。有没有办法使用“git rm”永久删除project.xcworkspace下的xcuserdata?我应该尝试将其放回存储库吗?如果是这样,怎么办。
帮助!!有任何想法吗?
UPDATE:
我粘贴 git status 的结果
Changes to be committed:
modified: project.pbxproj
modified: [a list of all the files to be merged]
Unmerged paths:
(use "git add/rm <file>..." as appropriate to mark resolution)
deleted by us: project.xcworkspace/xcuserdata/[username].xcuserdatad/UserInterfaceState.xcuserstate
both modified: ../[projectname]/en.lproj/Localizable.strings
以下是我从提交中删除 xcuserdata/xcuserstate 所执行的步骤
1-从这里生成.gitignore:https://www.toptal.com/developers/gitignore https://www.toptal.com/developers/gitignore
2- 使用终端将 .gitignore 添加到项目中:
- 在终端中导航到项目根文件并输入:
touch .gitignore
3- 转到项目文件夹中的文件,将其打开,然后粘贴步骤一中生成的代码。
4- 在终端中,同时仍处于项目类型中git add .gitignore
5-同样在终端中输入以下命令从 git 中删除 xcuserstate:git rm <whole path to xcuserstate>
如果您不知道路径,请输入git status
并从那里复制整个 xcuserstate 路径。
6-在 Xcode 中进行提交,您不应该看到 xcuserstate 文件,因为您添加了.gitignore
并分别在步骤 2 和 5 中将其从 git 中删除。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)