使用ruby签出git中的标记?
我想编写一个ruby脚本,它是一个命令行工具,将标记ID作为参数,然后运行与“git checkout tag_ID”等价的代码。然后,我将使用rsync将签出的目录推送到服务器。我已经看过了粗糙的gem和git gem,但是它们与git的交互方式似乎并不直观。我应该只使用系统调用,还是有一种更为ruby的方法来完成我正在尝试的工作 我已经从say克隆了/User/git_repogit@github.com/公司/本_repo.git。我会手动选择“git fetch--tags”,然后选择“git checkout tag_id”。然后我想把结果重新同步到服务器上 有gem-使用使用ruby签出git中的标记?,ruby,git,Ruby,Git,我想编写一个ruby脚本,它是一个命令行工具,将标记ID作为参数,然后运行与“git checkout tag_ID”等价的代码。然后,我将使用rsync将签出的目录推送到服务器。我已经看过了粗糙的gem和git gem,但是它们与git的交互方式似乎并不直观。我应该只使用系统调用,还是有一种更为ruby的方法来完成我正在尝试的工作 我已经从say克隆了/User/git_repogit@github.com/公司/本_repo.git。我会手动选择“git fetch--tags”,然后选择“
$gem install git
安装它。它处理系统命令行调用-下面是Ruby>=1.9的一个示例:
require 'git'
g = Git.init
Git.init('project')
Git.init('/home/schacon/proj',
{ :repository => '/opt/git/proj.git',
:index => '/tmp/index'} )
g.fetch
g.checkout('tag_id')
您可以从
g.tags
中获取标签数组。我会在编写我自己的系统调用时使用它,因为这个repo似乎当前处于维护状态(上次提交)。如果它是一个命令行工具,那么为什么不在非ruby脚本中使用git命令呢?我想将它包装在一个脚本中,该脚本将包含标签id、git repo和要推送到的服务器等参数。我还希望ruby中会有一些东西能让我更好地处理回购协议中的内容和标签本身。更不用说我也希望处理rsync过程。