我有一个关于在IBM-AIX上将Git用于Java EE应用程序的问题。
我团队中没有人(包括我在内)曾经使用过版本控制系统。
如果我为我的Java EE应用程序安装GIT,
任何人都可以解释设置Git存储库的最佳方式以及本地与远程工作的方式。
答案 0 :(得分:1)
在任何版本控制系统中,都有一个地方作为历史的规范表示。在Git中,该位置可以是灵活的,但常见的模式是使用托管服务(如GitHub)来处理服务器存储库的托管。
通常,您会使用Maven或Gradle这样的系统来处理构建您的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 '.'
””。