在git分支中添加了一个大文件,提交了更改,现在该文件在每个分支(包括master)中

时间:2014-01-28 19:38:02

标签: xcode git github

我已经意识到我采取了一些相当于没有手电筒进入洞穴的行动。希望这次事件的重述将包含出现问题的迹象。

我从我项目的主分支开始。我从远程主服务器执行了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所做的一遍又一遍地在同一个地方,所以我流产了(我已经从来没有做过转折)。
  • 放弃,我删除了所有本地文件(或者至少我认为我做了),重新启动了我的计算机(你永远不知道),从GitHub克隆了所有内容...而且我的版本仍包含大型mp4文件。

我似乎无法找到mp4文件,尽管在我构建应用程序时它显然存在。我从来没有把它推到遥控器上,而不是因为GitHub的束缚而无论如何它都会让我失望。

任何解决方案,面包屑或其他什么都会非常感激!!谢谢!

修改: 我尝试在使用git reset --hard创建newFeature分支之前返回构建,但仍然没有运气,因为我的项目仍将使用mp4文件构建。

也许我可以找到这个mp4文件在本地存储的位置?我在项目文件夹中找不到它。

解决: 请参阅下面的答案......长话短说,我需要在Xcode(Cmd-shift-K)中清理我的构建以从构建文件夹中删除MP4。

2 个答案:

答案 0 :(得分:0)

尝试git clean删除任何额外的文件。您还应该检查构建系统的日志,以找出该文件的包含位置。

答案 1 :(得分:0)

当然,这是我应该从一开始就做的事情。我以前读过,“在构建项目之前,在构建上做一个Clean”(Xcode中的Cmd-Shift-K)。在我的驱动器上运行磁盘报告后(使用JDiskReport),我发现mp4文件缓存在我DerivedData文件夹的Xcode的Library文件夹中。在构建上执行清理会从此文件夹中删除该文件,并且不会包含其他任何构建。

我想我从未遇到过没有表现Clean的时候真的很明显。当我重新启动Xcode时,我错误地认为当时会进行任何类型的缓存清除。

事实证明这不是git直接的问题,而是使用Xcode。我不确定它是否应该是正确的行为,但我现在将在分支之间切换时运行Clean。

相关问题