这篇帖子给出了一个“难题”,楼主也没有想出来好的办法,只能把自己搜集的资料和尝试过的工具总结出来,想起个抛砖引玉的作用。
电脑的工作文件夹中有很多个 git 仓库,怎么简单高效地在多台电脑间同步这些 git 仓库?
多仓库批量同步 如果只有几个 git 仓库,直接传到 github 上,每天在电脑 A 和电脑 B 上执行 git pull 和 git push 就行。 但现在有超过 10 个 git 仓库,再手动执行同步操作不大现实。新的工具应该有一键批量 Push 和 Pull 的功能。
保存工作区的内容 电脑上做了一半的任务,一般是 stash 后下次接着做,但 stash 的内容并不会同步到远程分支上,所以不能用 stash 命令来同步。 也可以将做了一半的任务 push 到远程仓库的 WIP 分支中,另一台电脑 Pull 这个分支接着做。但会增加操作量。 新的工具应该帮助我们方便地同步工作区中未 commit 的代码。
过滤不必要的文件 一般仓库都带有 .gitignore 文件来过滤仓库中不需要同步的文件(夹),新的工具也应该读取或者直接使用 .gitignore。
网上看到有的解决方案使用 dropbox 和 syncthing 来同步代码,亲自测试了一番,效果并不好:
这种同步方式并不优雅。
从 git 本身入手,寻找一种可以兼顾简单和高效的解决办法。
尝试了 git submodule 和 git subtree:
以 repo 为代表管理工具,大多是通过 python 或者 bash,实现批量 pull/commit/push 多个仓库的功能。
亲自尝试了一下 myrepos 工具,能用,可以一键 Pull,添加其他的功能配置繁琐,最关键的是文档找不到。google 家的 git-repo 也是这样的问题,摸索了一圈没有什么收货,只能看看内置的 help 文档。
搜索了一圈发现,这个问题从 2013 年起提到现在,一直没有较好的解决办法,各位 v 友有什么见解么?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.