我会尝试梳理一下过去几天发生的事情。请注意,这个项目只有我一个人在开发。我在GitHub上跟踪所有的问题/待办事项。我有很多功能分支,其中一些已经过期,永远不会合并,但是我保留它们以供参考。
问题始于我尝试将“develop”分支合并到“master”分支。出现了奇怪的合并冲突。我添加了一个新文件到项目中,对该文件进行了修改,然后将该文件重命名。我提交了一个“develop”的commit,并将其推送到GitHub。我没有预料到会因为这个而产生合并冲突,但事实却是如此。
我总是在Xcode之前在GitHub上检查/预览合并冲突。
在GitHub上,我通过比较“Master” <- “Develop”来检查冲突。GitHub报告存在冲突,因此我在GitHub上发起了一个拉取请求以进行调查。
冲突出现在一个名为“PlannerNote.xcodeproj/project.pbxproj”的文件中,看起来像这样(无法再看到冲突):
“奇怪的是,在主分支
“按照我的惯常工作流程,我尝试在Xcode中完成所有的git操作,因为如果我使用git cli会发生奇怪的事情。所以,我现在的计划是尝试通过xcode合并,然后在xcode中修复冲突。我就是这样做的。我进入了一个文件比较界面,冲突被标记出来了。奇怪的是,比较的两边显示的代码完全相同。我可以选择左边或右边,我选择了左边。顺便说一下,我甚至可以通过GUI看出哪个文件属于哪个分支。”
“无论如何,冲突似乎已经被解决了,合并也成功了。此时,我在
“现在真正的奇怪现象开始了。”
我记不清楚在stackoverflow上找到的确切解决步骤了,但大致是这样的,删除
所以现在我可以从
有什么建议吗?
编辑:附加信息
这两个屏幕截图展示了
我还尝试了在这里找到的解决方案。
问题始于我尝试将“develop”分支合并到“master”分支。出现了奇怪的合并冲突。我添加了一个新文件到项目中,对该文件进行了修改,然后将该文件重命名。我提交了一个“develop”的commit,并将其推送到GitHub。我没有预料到会因为这个而产生合并冲突,但事实却是如此。
我总是在Xcode之前在GitHub上检查/预览合并冲突。
在GitHub上,我通过比较“Master” <- “Develop”来检查冲突。GitHub报告存在冲突,因此我在GitHub上发起了一个拉取请求以进行调查。
冲突出现在一个名为“PlannerNote.xcodeproj/project.pbxproj”的文件中,看起来像这样(无法再看到冲突):
<<<<<< Develop
3D1A5668256AC9B700AB319C /* AppearanceTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D1A5667256AC9B700AB319C /* AppearanceTableViewController.swift */; };
==========
>>>>>>> Master
“奇怪的是,在主分支
master
中没有冲突的代码。毕竟,这个文件是作为一个新功能添加的。”“按照我的惯常工作流程,我尝试在Xcode中完成所有的git操作,因为如果我使用git cli会发生奇怪的事情。所以,我现在的计划是尝试通过xcode合并,然后在xcode中修复冲突。我就是这样做的。我进入了一个文件比较界面,冲突被标记出来了。奇怪的是,比较的两边显示的代码完全相同。我可以选择左边或右边,我选择了左边。顺便说一下,我甚至可以通过GUI看出哪个文件属于哪个分支。”
“无论如何,冲突似乎已经被解决了,合并也成功了。此时,我在
master
分支上,并将其推送到GitHub。然后,我对master
进行了更改,其中我增加了版本号(由于某种原因,我总是在主分支上进行版本升级),并提交并推送。”“现在真正的奇怪现象开始了。”
首先,在GitHub的master
分支中,似乎我的整个.gitignore
文件都被忽略了。项目中的每个文件都被添加并推送。不需要跟踪的项目生成文件,所有的pod
文件以及整个fastlane
目录都被添加了,还有谁知道什么其他的东西。所有这些都应该被忽略。我正在使用这个.gitignore。
develop
,结果出现了这个:
![can't switch to devlop](https://istack.dev59.com/iIl42.webp)
DerivedData
和xcuserdata
,并且有一些变体的git reset ...
然后我遇到了这个问题,通过试验各种stackoverflow的建议来解决:
![enter image description here](https://istack.dev59.com/U5nWI.webp)
master
切换到develop
。但是当没有进行任何更改时,我无法切换回“master”,会收到以下警告:
![enter image description here](https://istack.dev59.com/urPWR.webp)
从终端输入git status
显示:
应忽略
Pods/
。
Podfile.log
应该早就被添加和跟踪了。
我不太确定PlannerNote.xcworkspace/
总的来说:
- 我有成千上万个文件在我的仓库中被跟踪,但它们不应该被跟踪。我想要将它们删除。
- 我无法切换回
master
分支。 - 每次我认为我解决了一个问题,另一个问题就出现了。
可能的解决方案
- 手动删除所有不应被跟踪的文件。
- 一些超出我对git理解的神奇操作。
- 删除git,完全删除我的远程仓库,并从头开始。(但失去这个项目的历史记录会很糟糕)
- 从主分支创建一个新分支,并将该新分支设置为主分支。
实际上:
我不知道该怎么办。开发停滞不前,每次我认为自己已经重新开始了,就会遇到新的问题让我无法继续。有什么建议吗?
编辑:附加信息
这两个屏幕截图展示了
master
和develop
之间的目录/差异。请注意在Master
中添加的所有文件夹/文件。不确定是如何发生的。这也使我不敢在未清理master
的情况下从master
更新develop
。
![Master branch](https://istack.dev59.com/1gToO.webp)
![develop branch](https://istack.dev59.com/Mb4CX.webp)