我有一个网站,我在git中跟踪,因为我开始研究它。现在我想使用类似的代码构建第二个网站。我的第一个想法是,“好吧,我只是克隆ClientA的存储库,将克隆重命名为ClientB并从那里开始。”但在我看来,这似乎不是理想的组织方式。最后,我想我想要一个名为WebsiteBoilerplate的回购,每个客户都有几个分支......或者我应该为每个客户创建单独的回购? 是否有针对此类事情的最佳做法?或者我应该这样做但是我感觉如何?有一次,我已经确定了我需要去哪里,我需要一些帮助,从这里到那里,我需要运行哪些命令。
答案 0 :(得分:1)
就像它所依赖的一切一样,但拥有一个主分支,你开发公共代码听起来像一个合理的方法。然后,您可以为每个站点设置不同的分支,并使特定于站点的分支与公共主站保持同步。
创建特定于站点的分支很简单:
git checkout -b siteName
通过合并或重新定义来自主
的更改,与master保持同步git merge master
或
git rebase -i master
如果您想在一段时间后拥有单独的存储库,您也可以这样做。只需分叉主仓库,您仍然可以通过从“上游”存储库中删除更改来保持同步。
要在git中分叉(与github上的fork不同)我通常克隆,将原点重命名为上游并推送到我的新原点。我还设置我的本地跟踪新的起源。
假设您已经有一个远程命名原点,您希望将其重命名为上游并在新原点上设置跟踪。
git remote rename origin upstream
git remote add origin https://origin.git
git branch --set-upstream master origin/master
git push origin master
现在您在上游和站点特定的源中有公共代码,您可以通过以下方式跟踪上游的更改:
git fetch upstream master #checks if there are changes
git merge upstream/master #merges master with the changes in upstream
您可以将上述两个命令与git pull upstream master