重组git repo

沙希·库马尔·拉贾(Shashi Kumar Raja)

我有一个像这样的git repo结构-

main-repo
  -file1
  -file2

我想将其转换为-

main-repo
   -javascript
       -file1
       -file2

然后再添加另一种语言(例如

main-repo
    -javascript
        -file1
        -file2
    -python
        -file1
        -file2

鉴于我已经有多个提交,并且在travis.yml中配置了测试以在推送到主服务器上运行时,该如何执行。

马克·阿德尔斯伯格

最简单的事情就是移动文件并进行新的提交。这可能足够,也可能不够。在一方面,当然你不为您要添加的Python文件的历史,所以这将腾出一个完整的历史。另一方面,单个文件的早期历史记录可能并不总是显示出您想要的方式(因为git对文件移动的处理虽然不错,但并不完美)。

另一个选择是重写存储库的历史记录,使其看起来总是具有所需的目录结构。您可以使用git filter-branch如果回购协议相当小,那么您可以--tree-filter使用类似脚本参数来传递参数

mkdir javascript
mv file1 file2 javascript

(或mv *.js javascript,或任何有意义的内容)。

众所周知,此操作速度很慢,但是对于只有“几个”提交的相对较新的回购协议,它应该是合理的。

请参阅git filter-branch文档以获取更多详细信息。https://git-scm.com/docs/git-filter-branch

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档