添加git标签(版本)信息并将历史记录更改为网站

时间:2017-04-05 06:04:05

标签: laravel tags commit

我正在使用Laravel进行网站开发。什么是好的是在主页面上有一个按钮,显示项目的当前版本。单击按钮时,可以看到系统发生的所有更改(以git提交的形式)。有没有办法做到这一点?如果是这样,怎么样?

TIA

2 个答案:

答案 0 :(得分:0)

点击按钮启动ajax调用

$("#button").on("click", function () {
    url: window.location.origin + '/fetch-git-commits',
    type: "get",
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    },
    success: function (data) {
        // data contains the git commit informations
        $(".container").html(data);
    }
});

在Route.php文件中添加条目

Route::get('fetch-git-commits', 'YourController@getGitCommits');

在控制器中

public function getGitCommits ()
{
   exec('git log', $output);
   $history = array();

   foreach($output as $line) {
       if(strpos($line, 'commit') === 0) {
           if(!empty($commit)) {
               array_push($history, $commit);   
               unset($commit);
           }
           $commit['hash']   = substr($line, strlen('commit'));
        }
        else if(strpos($line, 'Author') === 0) {
           $commit['author'] = substr($line, strlen('Author:'));
        }
        else if(strpos($line, 'Date') === 0) {
            $commit['date']   = substr($line, strlen('Date:'));
        }
        else {
            if(isset($commit['message']))
                 $commit['message'] .= $line;
            else
                 $commit['message'] = $line;
        }
    }
    return $history; // Array of commits, parse it to json if you need
}

参考文献:

Reading a git commit message from php

Parse git log with PHP to an array

答案 1 :(得分:0)