我的本地Git工作流程应该如何?
我正在使用它开发一些可在本地服务器上运行的软件。我也想使用这个服务器作为git repo主机。
到目前为止,我已经使用--bare在服务器上初始化了一个新的repo并将我当前的代码推送到它。
如何将该代码签出到服务器上的目录(即/ var / www /)?
我收集我应该创建一个开发分支,然后我在我的开发机器上使用git pull,然后在我接近完成某组功能时从开发分支创建一个发布分支。然后,此发布分支将与主(实时/生产)分支合并 - 根据描述的here工作流程。
我的主要问题(上图)是:如何从我的裸git repo中检出代码到我服务器上的实时目录?
答案 0 :(得分:1)
如何将该代码签出到服务器上的目录(即/ var / www /)?
例如
cd /var/www && git clone /path/to/repo .
如何从我的裸git repo中检出代码到我服务器上的实时目录?
cd /var/www && git pull
答案 1 :(得分:1)
我建议您在托管您的实时网站的服务器上设置一个裸仓库。
要开始工作,请将该裸仓库克隆到本地开发机器
localhost:~# git clone you@yourlivehost:/path/to/bare /path/to/local/dev
在你的回购中你做所有的开发/提交/分支/合并的东西,当你完成后,你推到裸仓。
您可以手动登录您的实时服务器并将更改从裸仓库中提取到您的实时服务中,或让更新后挂钩为您完成工作。
手动(第一次):
localhost:~# ssh you@yourlivehost
yourlivehost:~# cd /path/to/live/server
yourlivehost:/path/to/live/server# git clone /path/to/bare .
手动(其他时间):
localhost:~# ssh you@yourlivehost
yourlivehost:~# cd /path/to/live/server
yourlivehost:/path/to/live/server# git pull
这假定你一直在做主人。如果您遵循更复杂的分支策略(如您提供的链接中描述的那样 - 顺便说一下,我喜欢使用相同的策略),您必须确保在推送之前将所有所需的更改从分支开发合并到主控从本地开发主机到裸仓库。
要自动执行此操作,请编辑文件/path/to/bare/hooks/post-update
并填写类似
cd /var/www
git pull origin
确保文件是可执行的,并且用于运行repo的用户具有对webserver目录的写入权限。
答案 2 :(得分:0)
试试这个:
git clone file:///path/to/your/bare-repo
或主持人之间:
git clone user@host:/path/to/your/bare-repo
答案 3 :(得分:0)
我将GIT仓库的内容硬链接到我的实时安装中。
查看我的要点: https://gist.github.com/2652879
我在我的htdocs目录中执行了这个,在我更新了所有的repos 之后。通过这种方式,我总是在我的实时安装中拥有repos的内容,可以在实时安装中进行更改,当它们运行良好时,可以在不需要更多工作的情况下提交它们。
这对以前的anserws有很好的优势,我在我的实时安装中没有直接的repo,只有来自它的文件。
答案 4 :(得分:-1)
看看gitolite!这是在本地或远程机器上组织自己的git服务器的方便方法,可以通过密钥进行访问。因此,将来当您需要添加某个存储库时,它不会成为问题。