git中的父/主项目

时间:2010-03-27 18:31:12

标签: git

我有一个项目“A”,它是一个Git存储库。我希望能够制作项目A(B和C)的多个副本,并为客户修改它们。

“A”是主人,因此有时当我执行新功能时,我希望能够将它们拉入B或C.但是一些提交应该留在A中,只有在制作新的克隆时才会使用。

我如何使用Git做到这一点?那就是:

  • 如何复制A? (克隆?)
  • 如何将特定提交到B和C?

请记住,这一切都在本地发生 - 而不是在GitHub上。我使用的是OS X.

1 个答案:

答案 0 :(得分:1)

  
      
  • 如何复制A?
  •   

git clone就是这种方式,这意味着你在A和B之间建立一个发布链接,允许在它们之间推/拉提交。

  
      
  • 如何将特定提交到B和C?
  •   

进入回购A:

  • 私人分支机构,您可以在其中开发所需的任何功能(但此分支永远不会被推送到其他地方)
  • 公共分支,将被推送到B和C
  • 在您的公共分支机构之上合并或rebase --onto您的私人分支机构的提交,然后将该公共分支机构推送到B或C.

例如,一个工作流程是:

cd ~/projectA
git checkout master
git branch private
# do some commits, some private, some useful to a
git checkout master
git branch feature_for_a
git cherry-pick sha1_from_private

cd ~/project_B
git fetch project_A
git checkout --track feature_for_a # check modifs for a
git checkout master
git merge feature_for_a
# do some client specific modifications