适用于软件项目和配套服务器代码的Git存储库的理想工作流程?

时间:2013-06-23 21:15:24

标签: ios git version-control nginx webserver

我使用Git来管理我的(iOS)项目的源代码,我现在已经做了很长一段时间了。但是我现在开始添加服务器端组件,我想确保服务器端代码保存在同一个存储库中,但与主代码分开 - 并设置在Web服务器上,以便无法访问整个代码库和历史记录。什么是一个理想的Git工作流程来处理两台计算机上的代码库,一台是本地的,一台是坐在Web服务器上的? (顺便说一下,我使用Nginx,如果在如何设置服务器配置以隐藏Git文件和历史记录方面有任何不同。)

1 个答案:

答案 0 :(得分:2)

关于第一个问题,如何以服务器端仍然是独立项目的方式跟踪客户端和服务器端。您可以将服务器代码作为子模块合并到客户端项目中。

~/client$ git submodule add foo@bar:server.git
~/client$ git commit

这会将可在SSH URL foo@bar:server.git访问的服务器存储库插入到子目录服务器中。子模块的另一种选择是子树合并。

将服务器代码签出到nginx中。 在服务器上的某处创建一个裸仓库,比如/var/git/server.git,并将其工作树设置到/ var / www / server /

cd /var/git
mkdir server.git && cd server.git
git init --bare
git config --bool core.bare false
git config --path core.worktree /var/www/server/

设置其接收后挂钩以检查新HEAD的工作树。

echo '#!/bin/sh' > hooks/post-receive
echo 'git reset --hard HEAD' >> hooks/post-receive

在开发中设置一个指向上面的遥控器:

client/server$ git remote add www root@bar:/var/git/server.git
client/server$ git push www master

或类似的......