10得票1回答
为什么git-filter-branch没有重写标签?

我需要将我的Git仓库拆成两个部分。我使用了这里显示的步骤:从Git仓库中分离(移动)子目录到独立的Git仓库 我使用的命令是: git filter-branch --subdirectory-filter ABC HEAD -- --all 看起来一切顺利,我现在的根目录是ABC。 但...

10得票2回答
Git的锁定策略如何实现并发?

最近我一直在阅读关于如何设置Git服务器的内容,发现根本不需要特定的守护程序(只需要一个带有文件系统的SSH服务器),我开始更深入地了解Git在底层是如何管理文件的。 每个提交在.objects文件夹中的表示策略以及所有内容的组合非常巧妙,但似乎并没有明确提到这种方法实际上使得Git能够非常...

10得票2回答
将已重命名的子目录分离到一个新仓库中。

我有一个存储库,想将其中的一个目录分离成一个新的存储库。这里是一个很好的起点,但有一个注意事项:我要分离的目录在某个时刻被重命名了。如果我按照那篇文章中针对目录使用新名称的解决方案进行操作,似乎会丢失重命名之前的历史记录。你们有什么想法可以解决这个问题吗?

10得票1回答
多次使用git-filter-branch来重写新提交

我希望将一个大型应用程序中分发的模块拆分为单独的子模块,并保持从上游拉取的能力。因此,这比将子目录分离为单独的Git存储库更复杂。我不仅需要使用git-filter-branch一次,而且要在完成此操作后(而上游没有),保持拉取上游更改的能力。简单地重新运行git-filter-branch以...

9得票2回答
更改git历史记录中所有提交的时区

我正在将一个旧的CVS代码库转换为git,这个过程非常顺利,但是所有的提交时间都是UTC时间而不是每个作者的本地时间。 我想按照每个作者的时区更改这些提交的时区,例如,来自一个作者的所有提交从+0000更改为+1000,而其他作者的提交保持不变。(因此,我可以为每个作者执行一次此过程。) ...

9得票1回答
用git filter-branch删除大量文件

我正在将一个代码库从svn迁移到git。 在这最后一步中,我想从历史记录中删除许多不必要的文件。 我尝试了以下命令: ```bash git filter-branch --tree-filter 'rm -rf path/to/unwanted/files' HEAD ``` gi...

9得票1回答
Git filter-branch - 删除一系列提交中一组文件的更改

假设我有一个名为dev的分支,我想要放弃自从它与master分支分叉以来在一组文件中所做的所有更改。如果此范围内的提交仅涉及这些文件,我希望将其修剪。我找到的最接近的方法是: git checkout dev git filter-branch --force --tree-filter '...

9得票2回答
一条命令如何撤销 "git filter-branch ... -- --all" 操作?

我开始尝试使用git filter-branch。使用--all选项会重写所有分支和标签,很酷。 git filter-branch在refs/original中创建所有覆盖的引用的备份,非常酷。现在,我想彻底清除所有使用filter-branch的实验。 是否有一种简单的方法完全撤销使用g...

9得票3回答
如何查找空的Git提交?

我可以使用哪些命令来查找git存储库中的空提交,即通过git filter-branch --prune-empty将被删除的提交?

8得票1回答
Git filter-branch使用index-filter无法按预期工作并删除目录

Git仓库foo在主分支中的结构 foo/refs/a.txt foo/bar/refs/b.txt 在其他分支中,refs/可能会出现在很多其他地方。 目标 从Git(历史记录)中删除所有refs目录(及其内容)的实例 环境:使用Git Bash的Windows 7 删除...