Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ruby签出git中的标记?_Ruby_Git - Fatal编程技术网

使用ruby签出git中的标记?

使用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”,然后选择“

我想编写一个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-使用
$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过程。