我想尝试回答一个包括git-flow和三个“点”或用例的问题,即git中央仓库、本地开发和生产机器。
这个答案没有经过充分测试。
我提供非常具体的命令。 我将使用
/root/git
而不是
<your folder>
。 我唯一更改原始命令的地方是将我的特定服务器名称替换为
example.com
。 我将解释文件夹的目的,以便您可以相应地进行调整。 如果有任何困惑,请告诉我,我会更新答案。
服务器上的git版本为1.7.1。 服务器是CentOS 6.3(Final)。
开发机器上的git版本为1.8.1.1。 这是Mac OS X 10.8.4。
中央仓库和生产机器位于同一台机器上。
中央仓库,svn用户可以将其视为“服务器”,配置如下。 我有一个名为“flowers”的项目,我在文件夹
/root/git
中保存所有git存储库。 我想为该项目创建一个git存储库。
cd /root/git
git clone --bare flowers flowers.git
Git命令给出了两条信息:
Initialized empty Git repository in /root/git/flowers.git/
warning: You appear to have cloned an empty repository.
不用担心。
开发机器的配置如下。我有一个文件夹/home/kinjal/Sites
,我把所有项目放在这里。现在我想获取中央git存储库。
cd /home/kinjal/Sites
git clone root@example.net:/root/git/flowers.git
这让我可以开始添加内容。我先设置了git flow。
git flow init -d
默认情况下,这是在分支develop
上。我现在在这里添加我的代码。然后我需要提交到中央git存储库。
git add .
git commit -am 'initial'
git push
现在代码已经推送到develop分支。我也想将它添加到master分支。
git flow release start v0.0.0 develop
git flow release finish v0.0.0
git push
请注意,在发布开始和发布结束之间我什么也没做。当我完成发布时,提示我编辑了两个文件。这将开发分支推到主分支。
在生产站点上,它与我的中央git存储库位于同一台机器上,我想将存储库放在
/var/www/vhosts/example.net
中。我已经有了
/var/www/vhosts
。
cd /var/www/vhosts
git clone file:///root/git/flowers.git example.net
如果生产机器也在不同的机器上,那么
git clone
命令看起来就像在开发机器上使用的命令。
git clone --bare
不会做你想要的事情。 - Wolfer