我正在开发一个 XCode 项目,我想将我的更改推送到远程。 当我在终端上通过
git status
时,它说
在主分支
您的分支和“origin/main”已经出现分歧,并且分别有 1 个和 1 个不同的提交。
(使用“git pull”将远程分支合并到你的分支中)
因此,在 XCode 上,我尝试使用“将本地更改重新设置为上游更改”。这允许我手动解决冲突,但是当我在本地删除了远程分支中存在的文件时,我无法解决冲突。错误消息显示:
源代码管理操作失败,因为找不到文件“filename.swift”。确保存储库中存在有效文件,然后重试。
我尝试创建具有相同名称的文件,但这似乎不起作用。 我也不想重新分支,因为我是唯一一个在这个存储库上工作的人。 我应该怎么办?任何帮助将不胜感激。
如果您已在本地删除文件并想要执行 git pull --rebase,则可能会遇到冲突,因为 git pull --rebase 尝试在远程更改之上重放本地提交。当本地删除与远程更改发生冲突时(例如,如果远程存储库仍然具有这些文件),Git 可能很难协调这些更改。
以下是如何逐步处理这种情况:
第 1 步:隐藏或提交任何未提交的更改
git stash
第 2 步:使用 Rebase 拉取并处理文件删除
git pull --rebase origin <branch-name>
第 3 步:解决已删除文件的冲突
git checkout --theirs <path-to-deleted-file>
第 4 步:应用隐藏的更改(如果有)
git stash pop
第 5 步:验证最终状态并推送更改(如果需要)
git push origin <branch-name>