Xcode 向git分支添加了一个大文件,提交了更改,现在该文件位于每个分支(包括主分支)

Xcode 向git分支添加了一个大文件,提交了更改,现在该文件位于每个分支(包括主分支),xcode,git,github,Xcode,Git,Github,我意识到我做了一些相当于没有手电筒进入洞穴的行为。希望这次事件的复述能说明出了什么问题 我从项目的主分支开始。我从远程主机执行了git pull(以确保我拥有最新的构建),然后执行了git checkout-b newFeature。通过这个newFeature分支,我做了一些更改,包括添加了一个700mb的.mp4文件。然后,我使用“git commit-a-m”新功能和一个大的mp4文件提交了我的更改…我从未将更改推送到远程。做了更多的改变,决定我不想要它们,所以我在一天结束时做了一个git

我意识到我做了一些相当于没有手电筒进入洞穴的行为。希望这次事件的复述能说明出了什么问题

我从项目的主分支开始。我从远程主机执行了
git pull
(以确保我拥有最新的构建),然后执行了
git checkout-b newFeature
。通过这个
newFeature
分支,我做了一些更改,包括添加了一个700mb的
.mp4
文件。然后,我使用“git commit-a-m”新功能和一个大的mp4文件提交了我的更改…我从未将更改推送到远程。做了更多的改变,决定我不想要它们,所以我在一天结束时做了一个
git-stash

今天早上,我切换到
master
分支,在那里我做了一个
git/status
。我注意到我的本地主分支现在领先于远程主分支,这很奇怪,因为它们应该完全相同。我还注意到,当我构建iOS应用程序时(从
master
,而不是
newFeature
),应用程序的大小比应该的大700mb

现在这部分是我开始恐慌的地方,所以如果事件的顺序不完全准确,我道歉

  • 运行
    git status
    后,我看到我的.mp4文件是一个未老化的文件
  • 我试图做一个
    git重置头
    ,它似乎删除了文件,但它仍然出现在我的构建中
  • 然后我尝试了
    git-rebase
    ,但没有成功,因为我似乎遇到了一个循环,
    git-rebase--continue
    所做的一切都在同一个地方反复出现,所以我放弃了(我以前从来没有做过一次rebase)
  • 放弃了,我删除了我所有的本地文件(或者至少我认为我删除了),重新启动了我的计算机(你永远不知道),从GitHub克隆了所有东西。。。我的构建仍然包括大型mp4文件
我似乎找不到mp4文件,尽管在我构建应用程序时它显然在那里。我从来没有把它推到遥控器上,并不是说由于GitHub的限制,它无论如何都会让我这么做

任何解决方案、面包屑或任何东西都将不胜感激!!谢谢

编辑: 在我使用git reset创建
newFeature
分支之前,我尝试返回到构建——很难,仍然没有运气,因为我的项目仍然使用mp4文件构建

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

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

尝试删除任何额外的文件。您还应该检查构建系统的日志,以了解此文件包含在何处。

当然,这是我一开始就应该做的事情。我以前读过,“在构建项目之前,对构建进行清理”(Xcode中的Cmd-Shift-K)。在我的驱动器上运行磁盘报告(使用)后,我发现mp4文件缓存在我的
文件夹中Xcode的
DerivedData
文件夹中。对生成进行清理时,将从该文件夹中删除该文件,并且没有其他将来的生成包含该文件

我想我从来没有遇到过一次不执行
Clean
的情况。当我重新启动Xcode时,我错误地认为任何类型的缓存清除都会在那时完成


事实证明,这不是git的直接问题,而是Xcode的问题。我不确定它是否应该是正确的行为,但现在每当在分支之间切换时,我都会运行一个干净的程序。

git commit-a
只提交已更改但已跟踪的文件。如果mp4文件是新的,它将不会被添加到目录中。您可以查看提交中的树以查看它是否在那里(例如,
git show newFeature:
git show newFeature:subdir
,以查看目录中的内容)。因此,我可以查看包含mp4文件的提交。运行
git show:myMovie.mp4
会给我以下
fatal:Path'myMovie.mp4'在
中不存在,这意味着mp4文件实际上不在提交中(这与Xcode问题的其余部分无关,我想已经解决了)。尝试了,但没有成功。。。还刚刚尝试了git clean-f myMovie.mp4,但没有成功。我将研究是否可以看到Xcode中的哪些部分仍然包含在构建中。我可以清楚地看到它被添加到构建中,但是在项目中找不到任何关于它的引用。