我刚刚将一个项目从Mercurial迁移到Git.当你添加标签时,Mercurial会添加空提交,所以我最终在Git中提交了我要删除的空提交.
如何从Git中删除空提交(其中没有任何文件的提交)?
谢谢.
我一直在关注这个优秀的答案,将我的git存储库的子目录提取到自己的存储库中,同时保留完整的历史记录.
我的存储库看起来像:
src/
http/
math/
tests/
http/
math/
Run Code Online (Sandbox Code Playgroud)
我想创建一个只包含src/math和tests/math目录的新分支 .
如果我运行以下命令:
git subtree split -P src/math -b math
Run Code Online (Sandbox Code Playgroud)
它创建一个包含目录内容的分支src/math,但丢弃该src/math/前缀.
如果我尝试使用两个目录的相同命令:
git subtree split -P src/math -P tests/math -b math
Run Code Online (Sandbox Code Playgroud)
它只提取tests/math,忽略src/math和丢弃tests/math前缀的内容.
总而言之,我希望我的最终存储库看起来像:
src/
math/
tests/
math/
Run Code Online (Sandbox Code Playgroud)
也就是说,保留原始目录结构,但丢弃命令行中未明确提及的所有内容.
我怎样才能做到这一点?
我正在将一个大的SVN存储库转换为多个git存储库(每个项目一个).
我正在为每个repo运行svn2git,包含所有不需要的目录,--exclude这样可以保留标签和分支(我在转换后删除所有不相关的标签和分支)
唯一的问题是我有大量空提交(与排除目录相关的提交).
有没有办法在svn2git进程中排除这些空提交?
此解决方案是在事实之后删除它们的好方法,但filter-branch只影响当前分支,而不影响所有其他分支和标记.