我已经意识到我采取了一些相当于没有手电筒进入洞穴的行动。希望这次事件的重述将包含出现问题的迹象。
我从我项目的主分支开始。我从远程主服务器执行了git pull
(以确保我有最新版本),然后是git checkout -b newFeature
。通过此newFeature
分支,我进行了一些更改,包括添加700mb .mp4
文件。然后我用git commit -a -m "New features and a big mp4 file..."
提交了我的更改我从未将更改推送到遥控器。做了一些更改,决定我不想要它们,所以我在一天结束时做了git stash
。
今天早上,我切换到master
分支,在那里我做了git/status
。我注意到我的本地主分支现在领先于远程主机,这很奇怪,因为它们应该完全相同。我还注意到,当我构建我的iOS应用程序(来自master
,而不是newFeature
)时,应用程序大小比应有的大700 MB。
现在这部分是我开始恐慌的地方,所以如果事件的顺序不完全正确,我会道歉......
git status
后看到我的.mp4文件是一个非暂存文件。git reset HEAD <file>
,它似乎删除了该文件,但它仍然出现在我的版本中。git rebase
,但是从来没有通过它,因为我似乎遇到了一个循环,所有git rebase --continue
所做的一遍又一遍地在同一个地方,所以我流产了(我已经从来没有做过转折)。我似乎无法找到mp4文件,尽管在我构建应用程序时它显然存在。我从来没有把它推到遥控器上,而不是因为GitHub的束缚而无论如何它都会让我失望。
任何解决方案,面包屑或其他什么都会非常感激!!谢谢!
修改:
我尝试在使用git reset --hard创建newFeature
分支之前返回构建,但仍然没有运气,因为我的项目仍将使用mp4文件构建。
也许我可以找到这个mp4文件在本地存储的位置?我在项目文件夹中找不到它。
解决: 请参阅下面的答案......长话短说,我需要在Xcode(Cmd-shift-K)中清理我的构建以从构建文件夹中删除MP4。
答案 0 :(得分:0)
尝试git clean
删除任何额外的文件。您还应该检查构建系统的日志,以找出该文件的包含位置。
答案 1 :(得分:0)
当然,这是我应该从一开始就做的事情。我以前读过,“在构建项目之前,在构建上做一个Clean”(Xcode中的Cmd-Shift-K)。在我的驱动器上运行磁盘报告后(使用JDiskReport),我发现mp4文件缓存在我DerivedData
文件夹的Xcode的Library
文件夹中。在构建上执行清理会从此文件夹中删除该文件,并且不会包含其他任何构建。
我想我从未遇到过没有表现Clean
的时候真的很明显。当我重新启动Xcode时,我错误地认为当时会进行任何类型的缓存清除。
事实证明这不是git直接的问题,而是使用Xcode。我不确定它是否应该是正确的行为,但我现在将在分支之间切换时运行Clean。