两个问题:
我试图在所有提交之前提交一个提交.
最底层的提交有660fb2a76211f36ec9a67d0454a90eab469e9fd0SHA.当我输入git rebase -i 660fb2a76211f36ec9a67d0454a90eab469e9fd0每个提交但最后一个提交显示在列表中.
我真的需要这个提交出现所以我可以把第一个提交作为最后一个!
当我把第一个提交作为第一个提交在列表中时(意思是第二个提交总共,因为第一个提交不在上面提到的列表中)我得到一个错误:error: could not apply b722c76... v1.4.3 BEAT release
我只是从列表的底部剪切并放入它到顶部!我没有改变号码!
我也试了好几次.同样的结果.
到目前为止就是这样.如果您有疑问请继续问!
我刚刚发现了我项目的旧备份.这些备份是在我使用git之前创建的.
我现在想将它们作为旧提交添加到我的存储库中.这意味着我必须将这些提交放在所有其他提交之前.
现在有几个问题:
如果不清楚,请提及.我会解决这个问题!
最后一件事:
我已经在GitHub上发布了这个.我主要使用他们的软件来提交提交.那我怎么把它推回GitHub呢?
似乎我最初的提交占用了90%的空间,因为它意外地在其中包含了大量的媒体文件.有没有办法从本地和远程回购中删除第一个提交,或者我应该留下这个?
我想在我的git存储库中拆分第一个提交,但我不能使用rebase来执行此操作,因为需要父节点.我发现编辑Git中的root提交?对修改第一次提交很有用,但不能拆分它.我该怎么分裂呢?
找到一篇关于使用空提交启动存储库的文章。看了几遍帖子,还是不明白其中的道理:
\n\n\n1.
\ngit log和其他命令会出现可怕的错误消息。2. 您可以\xe2\x80\x99
\ngit reset回到初始状态。
根据上面前两节的标题,我怀疑这可能是一篇讽刺作品。
\n\n\n3. 您可以\xe2\x80\x99t 重新设置初始提交的基准。
\n
然而,这似乎是一个有效的观点(与链接文章《鲜为人知的 Git 命令》相呼应)呼应),但当我开始思考它时,我只是看不出这在实践中有何用处(或者什么)它试图阻止)。
\n原帖链接:(2008?)Git Magic - 附录\xc2\xa0A.\xc2\xa0Git 缺点:初始提交
\n我同意“从 0 开始计数”的观点,但除了迂腐之外,仍然不明白空的初始提交有什么好处。
\n原帖链接:(2010) 如何初始化我的 Git\xc2\xa0repositories | 凯文·德尔戴克
\n这篇文章确实给出了使用此技巧进行代码考古目的的基本原理(仍然不了解具体细节,但我知道这是针对特殊用例的)。
\n第 3 项和第 4 项中的链接显然已经过时,并且整个想法显然从未成功(?),但我仍然想知道它是否仍然有好处 - 或者从那时起 Git 的变化消除了它的必要性。
\n当然,在输入所有这些内容后,我找到了 SO 线程:
\n我必须重写我的存储库的历史记录,因为它包含一些凭据.因为我必须修改root提交,所以我遵循Git Faq的指示:
git rebase -i允许您方便地编辑除根提交之外的任何先前提交.以下命令显示如何手动执行此操作.Run Code Online (Sandbox Code Playgroud)# tag the old root git tag root `git rev-list HEAD | tail -1` git checkout -b new-root root # edit... git commit --amend # check out the previous branch git checkout @{-1} # replace old root with amended version git rebase --onto new-root root # cleanup git branch -d new-root git tag -d root
我的问题是,我已经在存储库中有两个分支和几个标签,我希望我的历史记录重写也适用于那些.回购还没有公开,所以这不是问题.我以前问了一个类似的问题,但在那种情况下git rebase没有使用该命令.这是我的回购的基本图表:
+ master branch
|
| + topic branch
| |
| …Run Code Online (Sandbox Code Playgroud)