Joe*_*oel 21 git templates branching-and-merging
我有一些模板/起点代码,我在项目中重复使用.在处理新项目时,我总是想在模板中添加和更改内容.我想,与项目一起开发模板.
我的一些新增内容是特定于项目的,不应该提交给模板.其他人应该.
我打赌我可以使用git,但我不确定如何.我有一个模板的git存储库和每个项目的一个存储库.我想要一些,但不是全部,我做的提交被推回到模板.我可以制作一些未提交的文件子集吗?我应该在一个分支中处理特定于项目的事物而在主分支中处理模板吗?
我非常感谢任何见解.我的google-fu产量很少.
Dou*_*yer 14
我建议专门为您想要进行的任何模板更改创建一个分支.但请确保从之前的某个提交中启动它,因此您不会对模板进行特定于项目的更改.有点像git checkout -b template_changes EARLY_COMMIT_SHA.然后你已经做了任何模板改变,你可以选择:git cherry-pick TEMPLATE_CHANGE_SHA.
您希望对模板进行的任何未来更改都可以在模板分支上完成,并合并到项目的其他分支中; 但如果你足够远,你可能想切换到模板项目.
要将模板更改从项目推送到模板git存储库,您可以这样做git format-patch SHA_FROM_WHERE_TEMPLATE_BEGAN.这将创建一堆补丁文件,您必须将其复制到模板仓库并运行git apply 0001-... 0002-...以应用补丁,但这不是很有趣.
更多git-fu要做的事情是在项目仓库中添加模板仓库git remote add template /path/to/template/repo.如果模板分支存在,您可能必须使用-t或-m选项或命令git remote set-head template template_branch:master(或某些东西).然后,您应该能够将更改推送到模板仓库git push template template_branch.如果template_branch的head未设置属性,则可能必须git push template template_branch:master.
希望这对你有用.玩得开心!