开发工具 坛子里使用 Git 的朋友,请教一下 Git-Subtree 如何使用。

匿名 · 2012年03月21日 · 最后由 hbin 回复于 2012年03月30日 · 7964 次阅读

我用 Git 管理自己的 Emacs 配置,因为有很多插件,之前都是使用 Submodule 来管理的。随着一些插件升级,发现 Submodule 管理起来非常麻烦。比如,如果某个插件升级了,我要先进入 submodule,Pull,然后回到 Root 目录,再次 Commit。如果遇到一些需要根据自己需要修改的插件就更是麻烦了,我只能 Fork 他的代码,修改后 Push,再把自己修改后的作为 Submodule 添加进来。 后来在 Pro Git 上看到可以使用 Sub tree。 所以我想问,Sub tree 如何管理呢?能否像 submodule 那样一个 init 再 update 就把所有插件整好了?

git 分支管理吧!

匿名 #2 2012年03月21日

@kaka 能否详细说明?

可以创建多个分支然后在分支之间进行切换

当你在做某件事的时候你可以创建一个分支,然后可以选择分支工作,在工作的过程中,想回到之前工作,可以将分支切换到之前的工作

匿名 #5 2012年03月21日

@kaka 我问的不是 branch,而是 sub-tree 来管理引用的 project。

#5 楼 @hbin git 子树没有用过

我也用 submodule 来管理 vim 的插件,submodule 有个子命令 foreach,可以这样用

$ git submodule foreach git pull origin master

这样就把所有的 submodule 都更新了,当然更新后主项目要做一次 commit

没有实际用过 subtree,lz 可以看看 http://help.github.com/subtree-merge/

匿名 #8 2012年03月21日

#7 楼 @yesmeck Thanks,这个命令是方便了很多。

https://gist.github.com/2181511 写了个小脚本删除 submodules,手动删除很麻烦

能用 advice 就 advice,不能 advice 就重新定义函数,大部分库不需要去修改源代码

匿名 #12 2012年03月30日

#11 楼 @doitian 非常感谢!

需要 登录 后方可回复, 如果你还没有账号请 注册新账号