随着git rebase --interactive <commit>你能够压制任意数量的提交连成一个单一的一个.
除非你想将提交压缩到初始提交中,否则这一切都很棒.这似乎是不可能的.
有没有办法实现它?
在一个相关的问题中,我设法提出了一种不同的方法来解决第一次提交的问题,这也就是说,它是第二次提交.
如果您有兴趣:git:如何插入提交作为第一个,转移所有其他?
我最近转换了一个svn存储库git svn.不幸的是,svn历史记录有许多空提交消息.当我在没有提交消息的最近提交之前重新定义和编辑/重新提交提交时,这是一个问题.
$ git rebase -i d01
[detached HEAD ff9839c] asdf
2 files changed, 9 insertions(+), 0 deletions(-)
Aborting commit due to empty commit message.
Could not apply 054e890...
$ git branch
* (no branch)
master
$ git commit --amend
fatal: You are in the middle of a cherry-pick -- cannot amend.
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我为第二次最近的提交做了一个提交消息,提交了一个空提交消息,并且在最近一次提交时使用空提交消息停止了.
我想一次编辑所有提交空消息的提交.有没有办法可以做到这一点?也许我可以使用空提交消息更改所有提交以使提交消息首先"空"?
我有一个存储库,用于存储一些非常大的二进制文件(tifs,jpgs,pdfs).还有相当数量的文件被创建,删除和重命名,我不关心单个提交历史记录.这个问题有点简化,因为我正在处理一个没有分支而没有标签的存储库.
我很好奇是否有一种简单的方法可以从系统中删除一些历史记录以节省空间.
我在git邮件列表上找到了一个旧线程,但它并没有真正指定如何使用它(即$ drop是什么):
git filter-branch --parent-filter "sed -e 's/-p $drop//'" \
--tag-name-filter cat -- \
--all ^$drop
Run Code Online (Sandbox Code Playgroud) 我已经开始将我的私有subversion项目转换为git(Github)并将代码发布给公众.因此,我是一个git新手.
不幸的是,有一个包含机密数据的项目的修订版.修订版没有标记,我只知道它的哈希值.
有没有办法从远程git存储库中完全删除该特定修订?这是一个独立项目,所以没有人会受到伤害.