git-filter-branch

    0热度

    1回答

    我有一个很大的git回购,我想将其拆分为2.我能够使用“git filter-branch”或“git subtree split”来做到这一点,但两种方法都是创建全新的提交ID(SHA)。我知道我们正在重写历史,它会改变提交id。 但是我的需求需要在分割回购后有相同的提交id。可能吗? 例子: 有一个混帐回购富-bar.git下面提交 *foo-bar.git* 1fd3dsg refs #1

    6热度

    2回答

    我想合并多个Git仓库(让我们说repoA和repoB)到一个新的仓库。新的存储库(repoNew)应该在一个单独的子目录中包含每个repoA和repoB。由于我到现在为止只在本地工作,我可以做任何我想要的存储库。 在这些情况下,标准方法似乎是使用git filter-branch来重写每个repoA和repoB的历史记录,使其看起来好像它们一直位于子文件夹中,然后将它们合并到repoNew中。

    1热度

    1回答

    如何我不能为我所有提交的历史,但并具体commiter更改名称和电子邮件.. 类似,的foreach allcommits如果committer_name =“雨果卡萨“ 变化: committer_name committer_email AUTHOR_NAME AUTHOR_EMAIL ,并做到这一点, 推并刷新历史数据之后。 请helppp我搜索,发现这个: git filter-branc

    2热度

    2回答

    我们有一个相当庞大的代码库,包含大约60000个提交。我们希望在保留git历史的同时重新格式化所有的.java文件。因此,我们采用的方法是使用git filter-branch --tree-filter重新格式化整个代码库,同时保持历史记录不变。但是,有几个问题我无法找到答案。 当我应用--tree过滤器,并通过重新格式化所有.java文件的根目录下,重写发生的命令,但在最后,我看到的所有.ja

    0热度

    1回答

    如何我通常着手: 实际上,删除一些文件,从完整的历史,我使用下面的脚本(我称之为混帐紧缩): #!/bin/bash # # git crunch <filenames> # git filter-branch --index-filter "git rm --cached --ignore-unmatch $*" rm -rf .git/refs/original/ git refl

    0热度

    3回答

    我必须在git回购中应用过滤器分支,出于某种原因,似乎已经与旧散列合并,导致树为每个文件看起来像这样: -. .--A--B--C-....-X--Y--Z \--A'-B'-C'-...-X' 与一个素数的承诺字母是对应的字母重复,只是与不同的SHA1哈希。 过滤分支应用后已经提交,这使得它很难重做过滤器分支(图中的Y,Z),所以我的问题是,有没有办法删除重复的提交? 编辑:更新了

    2热度

    3回答

    我已经将一个大的SVN存储库迁移到GIT,并且有相同作者的相同消息的连续提交大量。 现在我想自动修改提交到一个单一的提交。 想法?

    4热度

    3回答

    我之前被问及#git的这个问题,但由于其合理实质性,我将在此处发布它。我想在回购库上运行filter-branch,以使用python脚本通过数百次提交修改(数千个)文件。我在回购目录使用以下命令调用clean.py脚本: git filter-branch -f --tree-filter '(cd ../cleaner/ && python clean.py --path=files/*/*/

    2热度

    1回答

    我想在某个日期的所有承诺执行命令: git filter-branch -f --tree-filter <command> HEAD -- --since="2014-06-01 13:37" <name-of-branch> 不幸的是,总是输出Found nothing to rewrite并停止。一切后--应该作为一个选项被处理rev-list所以,如果我尝试: git rev-list -

    9热度

    1回答

    我最近需要使用'git am'将16个补丁应用到我的回购库中,并且我非常小心地为每个补丁使用'--committer-date-is-author-date'。但是,我还需要调整每个amd补丁的提交消息,并且 - 在完成所有16个补丁后 - 我发现'commit --amend'碰撞每个补丁的时间戳。 我最终学会了我的问题可能一举得到解决与 git rebase --committer-date-