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
:指定主要开发分支,默认为master
或main
。-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
更多关于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'),
],
),
),
),
);
}
}