我发现我的.gitignore文件根本没有提交到我的git存储库中。我在我的存储库中有大约300个提交,我创建了一些分支:我正在使用git流模型,所以现在我拥有了master,develop和一些功能分支
我不在乎如何,但我想以某种方式修改第一次提交以及之后的所有版本。
我认为我有两种选择:
我使用this link尝试了#1选项但是在rebase上我得到了这个错误
$ git rebase --onto newroot --root master
First, rewinding head to replay your work on top of it...
Applying: First Commit
fatal: Out of memory, realloc failed
Repository lacks necessary blobs to fall back on 3-way merge.
Cannot fall back to three-way merge.
Patch failed at 0001 First Commit
The copy of the patch that failed is found in:
c:/Temp/.git/rebase-apply/patch
When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".
我最大的文件大约是40MB,整个项目大小约为1.6GB。 当我运行这个命令时,我关闭了所有运行的内存,并且有大约10GB的可用内存(我总共有16GB)。
任何想法如何做到这一点?
答案 0 :(得分:1)
您是否尝试过交互式rebase?
$ git rebase -i --root
然后在第一次提交中输入“edit”。添加新文件,然后添加git rebase --continue
,它就能满足您的需求。
答案 1 :(得分:0)
我没有意识到git需要增加内存以获得长期重组。有趣。
你可以分阶段进行改造。您不必将master
作为目标。你可以在分支的中途给它一个提交,或1/3的方式。这不会在最后移动主标签,所以你必须在其上删除一个标签或临时分支名称,但是你可以使用下一位重新标记,然后在你的记忆可以分阶段完成处理。最后,您可以git reset --hard
将master移动到新分支。