版本控制系统(Git) - 服务器与本地澄清

时间:2012-12-26 20:07:31

标签: git java-ee

我有一个关于在IBM-AIX上将Git用于Java EE应用程序的问题。

我团队中没有人(包括我在内)曾经使用过版本控制系统。

如果我为我的Java EE应用程序安装GIT,

  1. 我想通过Git版本控制来跟踪webapps目录。
  2. 我是否将webapps目录(包含所有代码)设置为服务器存储库?
  3. 我是否需要在其他位置创建服务器存储库,然后在其中创建项目 那个存储库然后检入/输出文件到那个存储库? 这似乎是一些在线教程暗示的内容,所以我也对这部分感到困惑。
  4. 任何人都可以解释设置Git存储库的最佳方式以及本地与远程工作的方式。

3 个答案:

答案 0 :(得分:1)

在任何版本控制系统中,都有一个地方作为历史的规范表示。在Git中,该位置可以是灵活的,但常见的模式是使用托管服务(如GitHub)来处理服务器存储库的托管。

通常,您会使用MavenGradle这样的系统来处理构建您的webapp(例如,作为war文件)。这意味着您将检查src/main/java源代码树到源代码管理中,它会生成一个war文件作为输出,您将推送到部署区域。

开发人员将使用存储库的“本地”副本进行更改,提交它们,然后将它们推送到中央“远程”存储库。其他一些系统(例如像Jenkins这样的持续集成系统)将负责监视远程存储库以获取新的更改,并将该代码构建到可以随后部署到现场的工件中。

您可以查看Setting Git for a team of 3 people?之类的问题,以便了解如何设置存储库。

答案 1 :(得分:0)

我认为你不想对服务器上的webapp目录进行版本控制。

您应该在另一台服务器(而不是您的生产环境)中创建一个服务器存储库(对于git不是必需的,但可能更容易开始),因此会有您的代码。然后你应该考虑使用Jenkins或类似的东西来处理编译+部署,并且可能使用Nexus来托管不同版本的二进制文件。

将所有这些结合在一起,Jenkins应负责将源代码构建到二进制文件,在Nexus上发布,以及将新版本部署到生产环境。

答案 2 :(得分:0)

您可以在开发服务器上创建一个git存储库,但不能直接在webapp目录中创建它。

您可以在其他地方创建它,并使用:

初始化它
git --git-dir=/path/to/your/git/repo --work-tree=/path/to/webapp add .
git --git-dir=/path/to/your/git/repo --work-tree=/path/to/webapp commit -m "first import"

然后你将git repo克隆(仍然在服务器上)作为 bare repo (到avoid synchronization issue with the working tree)。

你需要意识到的是git本身不会监听任何远程查询:你需要install a server(git守护程序或ssh或https:见Git on the server)。

然后,只有这时你的开发人员才能推送到那个裸git repo,并且post-receive hook将能够更新你的webapps目录:例如参见“using git to deploy my node.js app to my production server” ,或“Git checkout in post-receive hook: “Not a git repository '.'”。

相关问题