Flutter版本控制插件git_revision的使用

Flutter版本控制插件git_revision的使用

概述

git_revision 是一个 Git 扩展工具,用于为每个提交生成有意义且易于理解的版本号。它可以帮助开发者更方便地管理和追踪项目的版本信息。


安装

使用 dart pub 全局安装

dart pub global activate git_revision

手动安装

可以从 GitHub Releases 下载压缩包并手动安装。


使用方法

基本用法

运行以下命令以获取当前提交的版本号:

> git revision
73_feature/user_profile+0_996321c-dirty

显示详细信息

通过添加 --full 参数可以查看更多详细信息:

> git revision --full
versionCode: 73
versionName: 73_feature/user_profile+0_996321c-dirty
baseBranch: master
currentBranch: feature/user_profile
sha1: 996321c8a38c0cd0c9ebeb4e9f82615796005202
sha1Short: 996321c
baseBranchCommitCount first-only: 50
baseBranchCommitCount: 50
baseBranchTimeComponent: 23
featureBranchCommitCount: 0
featureBranchTimeComponent: 0
featureOrigin: 996321c8a38c0cd0c9ebeb4e9f82615796005202
yearFactor: 1000
localChanges: 4 +35 -12

可能的版本格式

示例

以下是可能生成的版本格式示例:

1_a541234

1235+1_1234567

432+43_a342123-dirty

1234_someBranch+43_3423123

1234_someBranch+43_3423123-dirty

1234_feature/topic_branch-something1234_cool+43_3423123-dirty

1234_topic_branch_name+0_3423123-dirty

正则匹配规则

以下正则表达式可用于匹配上述所有版本格式:

(\d+)(?>_([\w_\-\/]+))?(?>\+(\d+))?_([0-9a-f]{7})(-dirty)?

常见选项说明

命令行帮助

运行以下命令以查看所有可用选项:

> git revision -h

常见选项:

  • -h, --help:打印此帮助信息。
  • -v, --version:显示 git revision 的版本信息。
  • -C, --context:指定 Git 工作目录路径。
  • -b, --baseBranch:指定主要开发分支,默认为 mastermain
  • -y, --yearFactor:每年的版本增量,默认为 1000
  • -d, --stopDebounce:两个提交之间的时间间隔(小时),超过此时间间隔的提交不会计入时间组件,默认为 48
  • -n, --name:可选的人类可读的版本名称,例如 PR 编号等。
  • --full:显示完整的版本信息。

示例代码

获取版本号并展示

以下是一个简单的 Flutter 示例代码,展示如何在应用中使用 git_revision 插件:

pubspec.yaml

确保在 dependencies 中添加了 git_revision

dependencies:
  git_revision: ^0.0.2

主程序代码

import 'package:flutter/material.dart';
import 'package:git_revision/git_revision.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Git Revision Example'),
        ),
        body: Center(
          child: FutureBuilder<String>(
            future: GitRevision.getRevision(), // 获取版本号
            builder: (context, snapshot) {
              if (snapshot.hasData) {
                return Text(
                  'Current Revision: ${snapshot.data}',
                  style: TextStyle(fontSize: 20),
                );
              } else if (snapshot.hasError) {
                return Text('Error: ${snapshot.error}');
              }
              return CircularProgressIndicator();
            },
          ),
        ),
      ),
    );
  }
}

更多关于Flutter版本控制插件git_revision的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter版本控制插件git_revision的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


git_revision 是一个 Flutter 插件,用于在应用程序中获取当前 Git 仓库的版本信息,例如提交哈希、分支名称等。它可以帮助开发者在应用中显示或记录当前的 Git 版本信息,便于调试和版本追踪。

安装插件

首先,你需要在 pubspec.yaml 文件中添加 git_revision 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  git_revision: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来安装插件。

使用插件

在你的 Dart 代码中,你可以通过 GitRevision 类来获取 Git 版本信息。以下是一些常见的用法示例:

1. 获取提交哈希

import 'package:git_revision/git_revision.dart';

void main() async {
  String commitHash = await GitRevision.getCommitHash();
  print('Commit Hash: $commitHash');
}

2. 获取分支名称

import 'package:git_revision/git_revision.dart';

void main() async {
  String branchName = await GitRevision.getBranchName();
  print('Branch Name: $branchName');
}

3. 获取标签名称

import 'package:git_revision/git_revision.dart';

void main() async {
  String tagName = await GitRevision.getTagName();
  print('Tag Name: $tagName');
}

4. 获取短提交哈希

import 'package:git_revision/git_revision.dart';

void main() async {
  String shortCommitHash = await GitRevision.getShortCommitHash();
  print('Short Commit Hash: $shortCommitHash');
}

示例应用

以下是一个简单的 Flutter 应用示例,展示如何使用 git_revision 插件在应用中显示 Git 版本信息:

import 'package:flutter/material.dart';
import 'package:git_revision/git_revision.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  String commitHash = await GitRevision.getCommitHash();
  String branchName = await GitRevision.getBranchName();
  String tagName = await GitRevision.getTagName();
  String shortCommitHash = await GitRevision.getShortCommitHash();

  runApp(MyApp(
    commitHash: commitHash,
    branchName: branchName,
    tagName: tagName,
    shortCommitHash: shortCommitHash,
  ));
}

class MyApp extends StatelessWidget {
  final String commitHash;
  final String branchName;
  final String tagName;
  final String shortCommitHash;

  MyApp({
    required this.commitHash,
    required this.branchName,
    required this.tagName,
    required this.shortCommitHash,
  });

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Git Revision Example'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text('Commit Hash: $commitHash'),
              Text('Branch Name: $branchName'),
              Text('Tag Name: $tagName'),
              Text('Short Commit Hash: $shortCommitHash'),
            ],
          ),
        ),
      ),
    );
  }
}
回到顶部