- Flutter 状态管理方案全面对比与实战
Neo Evolution
Flutterflutterjavascript开发语言前端框架前端
在Flutter应用开发中,状态管理是一个永恒的话题。选择合适的状态管理方案对于提升应用性能、改善开发体验以及保证代码质量都至关重要。本文将深入分析几个主流的状态管理方案,通过实例代码对比它们的特点,帮助你做出最佳选择。Provider:从最简单的开始Provider是Flutter官方推荐的状态管理方案,它基于InheritedWidget实现,概念简单且易于理解。让我们从一个计数器示例开始:/
- Qt QGroupBox 组件总结
enyp80
qt开发语言
QtQGroupBox组件总结1.概述作用:QGroupBox是一个容器部件,用于将界面中相关的控件分组,提供逻辑上的视觉分离,通常带有标题(title)和边框。继承关系:继承自QWidget,具备所有QWidget的功能,同时支持分组布局和可选的复选框功能。2.核心特性标题(Title):通过setTitle()设置分组框的标题,支持富文本(如HTML格式)。复选框(Checkable):可设置
- 阿里云EMAS:2月产品动态
阿里云移动应用开发测试推送
一、内容摘要上线EMAS定制版套餐,适合有多种移动研发工具诉求的中型企业Windvane小程序容器新增列表搜索功能云构建发布新的android镜像java-11-base,适应gradle7.0+移动测试上线一键重跑功能,支持失败的用例一键重跑移动推送支持Flutter插件,开源更易用二、产品动态
- qt实现网络聊天室
yaofei2006
服务器qt
1.功能需求服务器:监听客户端连接。接收客户端消息并广播给所有连接的客户端。处理客户端断开连接。客户端:连接到服务器。发送消息到服务器。接收并显示来自其他客户端的消息。2.技术栈Qt网络模块:QTcpServer和QTcpSocket用于实现网络通信。多线程:使用QThread或Qt的事件循环处理并发连接。信号与槽机制:用于处理网络事件和UI更新。QtWidgets:用于构建用户界面。3.项目结构
- flutter 专题 五十三 Flutter 底部向上动画弹出菜单
leluckys
Flutter面试与实战flutter前端javascript
在移动应用开发中,我们经常会遇到弹出菜单的开发需求,对于下拉菜单可以参考Flutter自定义下拉菜单,而如果是向上的弹出菜单或者更加负责的扇形菜单,则需要开发者进行自定义开发。上面是自定义向上弹出菜单的示例,如果要实现上面的效果,需要开发者对动画(AnimationController、Animation)和Flow组件能够很熟练的进行使用。,为了方便大家快速的进行开发,现在我们将它封装城一个组件
- PyQt5之按钮
threesevens
qtpyqt
1.QAbstractButton(1)描述所有按钮控件的基类,提供按钮的通用功能,继承自QWidget(2)功能作用1)提示文本setText(str)#设置按钮提示文本text()#获取按钮提示文本案例fromPyQt5.Qtimport*importsysapp=QApplication(sys.argv)window=QWidget()window.setWindowTitle("提示文本
- 【无标题】
qq_43361844
QTQt学习
#QRubberBandArubberbandisoftenusedtoshowanewboundingarea(asinaQSplitteroraQDockWidgetthatisundocking).HistoricallythishasbeenimplementedusingaQPainterandXOR,butthisapproachdoesn’talwaysworkproperlysin
- qt的QSizePolicy的使用
qq_43361844
QTQSizePolicy
使用QSizePolicy设置控件的伸缩因子在Qt中,QSizePolicy控制控件如何在布局中伸缩。如果想要影响控件的大小调整行为,可以通过QSizePolicy::setHorizontalStretch()和QSizePolicy::setVerticalStretch()设置伸缩因子。基本用法假设我们有一个QWidget或者QLabel需要在QHBoxLayout或QVBoxLayout里
- flutter doctor 报错—CocoaPods not installed
一码平川SHI
flutter
执行命令brewinstallcocoapodscommandnotfound:brew报错解决:添加链接描述
- 搭建Mac Flutter开发环境
程序员小詹
Flutter开发实战macosflutter
基于MacM1Pro搭建Flutter开发环境,其他平台请参考官方教程1、Getstarted电脑配置:建议8核16G,70G以上磁盘空间系统要求:Flutter支持macOS10.15(Catalina)或更高版本,zsh是的默认shell。如果是AppleM系列的芯片,需要安装Rosetta2,如果是Intel芯片,则忽略下面这段。对于在搭载Apple芯片的Mac上开发和运行Flutter应用
- 滴滴开源新项目Unify:聚焦Flutter与原生通信难题,助力跨端应用落地
滴滴技术
开源flutter
引言在移动开发领域,移动跨端技术因其提效收益,逐渐成为业界趋势之一。Flutter作为近年来热门的跨端技术,以高性能、自渲染、泛跨端著称,得到广泛应用。在滴滴国际化业务中,我们大量应用Flutter。目前已在滴滴国际化外卖、滴滴国际化出行司机端等业务中大规模落地,整体交付提效50%+,收益显著。在大规模Flutter跨端场景下,存量的原生业务与增量Flutter业务间的双向通信成为痛点问题。为此,
- cocos creator从零开发2048(11)-游戏失败处理
cocos
Canvas节点下新建空节点并重命名为panelFailed,挂载Widget组件并勾选Top、Right、Bottom、Left并把这些属性都设置为0,挂载BlockInputEvents组件。panelFailed节点下新建Sprite(单色)并重命名为bg,Size设置为500x500,Color设置为#43C1BE。panelFailed节点下新建Label(文字),PositionY设置
- 【Python第三方库】PyQt5安装与应用
墨辰JC
Pythonpythonqt开发语言学习pyqt
文章目录引言安装PYQT5基于Pyqt5的简单桌面应用常用的方法与属性QtDesigner工具使用与集成窗口类型QWidget和QMainWindow区别UI文件加载方式直接加载UI文件的方式显示窗口转化py文件进行显示窗口PyQt5中常用的操作信号与槽的设置绑定页面跳转引言PyQt5是一个流行的Python库,用于创建桌面应用程序。它提供了对Qt应用程序框架的访问,使得开发者可以利用Qt的强大功
- 实战分享:基于python PyQt5的视频监控系统 完整代码数据 课程设计
一枚爱吃大蒜的程序员
机器学习实战100例python音视频视频监控系统PyQt5
代码视频讲解:PyQt5的视频监控系统:基于pythonPyQt5的视频监控系统完整代码可直接运行_哔哩哔哩_bilibiliimportsysimportcv2fromPyQt5.Qtimport*fromPyQt5importQtCore,QtGui,QtWidgetsfromPyQt5.QtCoreimport*fromCameraimportSmallScreen
- cocos creator从零开发五子棋(07)-胜负ui
cocos
Canvas节点下新建空节点panelSettle,挂载Widget组件并勾选Top、Right、Bottom、Left把这些属性都设置为0,挂载BlockInputEvents组件。panelSettle节点下新建Label(文字)并重命名为lblMsg,PositionY设置为100,Color设置为#19FF00,FontSize和LineHeight都设置为100。panelSettle节
- 基于自定义WebView实现H5混合开发
小二李
FlutterFlutter组件封装flutterwebview
pubspec.yaml添加webview插件flutter_webview_plugin:^0.4.0webview.dart基于webview的组件封装constCATCH_URLS=['m.ctrip.com/','m.ctrip.com/html5/','m.ctrip.com/html5'];classWebViewextendsStatefulWidget{finalStringurl
- Flutter目录及开发结构
倾云鹤
Flutter#Flutter小技巧flutter
一、前言首先先看一下flutter自带的目录文件或目录说明.dart_tool记录了一些dart工具库所在的位置和信息.ideaandroidstudio是基于idea开发的,.idea记录了项目的一些文件的变更记录androidAndroid项目文件夹iosiOS项目文件夹liblib文件夹内存放我们的dart语言代码test用于存放我们的测试代码.gitignoregit忽略配置文件.meta
- QT QTableWidget 表头样式设置
Tsai时越
QTGUI控件
QHeaderView::section{border:2pxgroovegray;border-radius:10px;padding:2px4px;background-color:#1296db;color:#ffffff;}效果:
- Qt QMainWindow 自定义标题栏
maomao171314
杂项qt自定义标题栏QMainWindow
MainWindow.h#ifndefMAINWINDOW_H#defineMAINWINDOW_H#include#include#include#include#includeclassMainWindow:publicQMainWindow{Q_OBJECTpublic:explicitMainWindow(QWidget*parent=nullptr);~MainWindow();prot
- QTableWidget样式设置
季截
qt前端javascripthtml
QHeaderView::section{font-family:思源黑体;font-size:28px;font-weight:500;color:#054578;}QLineEdit:hover{border:1pxsolid#298DFF;border-radius:3px;background-color:#F2F2F2;color:#298DFF;selection-background
- QT批量UI操作
qt
在QT批量操作的时候,可以选择先将渲染关闭,用户操作关闭,等执行完后,开启渲染,开启用户操作voidbeginBatchOperations(QWidget*widget){widget->setUpdatesEnabled(false);widget->setEnabled(false);//需要的话还可以把滚动条disabled}voidendBatchOperations(QWidget*w
- flutter启动后不显示文字,中文字体不显示
tower888
flutter前端dart
Flutter3.29.0-1.0.pre.114运行报错:FailedtoloadfontRobotoathttps://fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Me4GZLCzYlKw.woff2解决:下载roboto字体,并将字体(Roboto-Regular.ttf)放入app代码下,配置默认fonts:flutter:uses-mater
- Flutter 中的 Stepper 小部件:全面指南
明似水
flutterflutter
Flutter中的Stepper小部件:全面指南在Flutter应用中,Stepper是一种用于创建向导式界面或分步表单的小部件。它允许用户通过一系列的步骤完成一个过程,每个步骤可以包含不同的表单字段或用户交互。Stepper通常用于注册流程、结账流程或任何需要用户按顺序完成的场景。本文将详细介绍Stepper的用途、属性、使用方式以及一些高级技巧。什么是Stepper小部件?Stepper是一个
- 全面掌握Flutter开发:从核心原理到跨平台实战,构建高效应用
chenNorth。
前端flutter
文章目录引言一、Flutter框架概述二、Flutter开发环境搭建三、Flutter核心技术解析1.**Widget树与状态管理**2.**路由与导航**3.**网络请求与数据解析**4.**本地存储与数据库**5.**包管理与依赖**四、实战案例:开发跨平台新闻客户端五、Flutter开发工具与调试技巧六、Flutter生态与未来趋势结语引言在跨平台开发领域,Flutter凭借其高性能渲染引擎
- Flutter_学习记录_数据更新的学习
一人前行
flutter学习flutter
Flutter如果界面上有数据更新时,目前学习到的有3种:第一种:直接用StatefulWidget组件,然后当数据更新时,调用setState的方法更新数据,页面上的数据会直接更新;第二种:用StatefulWidget组件和InheritedWidget的结合,这种模式比较适用于有比较多层级的场景;这样数据更新时,就不用一层一层的从父类上传递数据;第三种:用第三方库scoped_model,这
- qt 控件的焦点事件
qq_43361844
QTqt控件的焦点策略设置
在Qt中,设置焦点策略是通过QWidget的setFocusPolicy()方法来实现的。焦点策略控制了一个控件何时和如何获取焦点。Qt提供了几种常见的焦点策略,以帮助管理控件的焦点行为。常见的焦点策略Qt::NoFocus:控件不接受焦点。Qt::TabFocus:控件可以通过按Tab键获得焦点。Qt::ClickFocus:控件可以通过鼠标点击获得焦点。Qt::StrongFocus:控件可以
- odoo qweb模板文件t-学习最新总结
信息化未来
odoo15owl学用笔记利用开源打造自己实用ERPpython
模板文件常用的-t意义Odoo中有相当多的视图,挂件等组件,在产品拥有个性化定制需求的时候,我们要修改某些widgets或者classes,那么就需要理解Odoo中前端框架的JS架构,并且掌握继承JS的方法。js要与xml配套来学,先看下模板中的标签(以"t-"开始)的意义,以利于快速理解学习。t-name用于指明模板的名称,t-call用于调用另外模板,后面带一个模板的名称t-extend用于指
- 【鸿蒙开发实战教程】在MacOS上如何使用 Flutter 构建鸿蒙APP
「已注销」
harmonyosmacosflutter鸿蒙
前言根据研究机构CounterpointResearch发布的最新数据,2024年第一季度,鸿蒙OS份额由去年一季度的8%上涨至17%,iOS份额则从20%下降至16%。这意味着,华为鸿蒙OS在中国市场的份额超越苹果iOS,已成中国第二大操作系统。随着鸿蒙市场份额的不断提升,相应的岗位也会迎来一个爆发式的增长。这对于想要换赛道的程序员来说是一个非常好的消息,话说大家最近有想法转型鸿蒙开发吗?目前各
- QT(5.9.9 )creator做一个播放器遇到的问题与解决
CS_Dr.Deng
qt5c++windows
代码如下(需要自取)(已测试过完美运行)MyMediaPlayer.proQT+=coreguiQT+=multimediaQT+=multimediawidgetsgreaterThan(QT_MAJOR_VERSION,4):QT+=widgetsCONFIG+=c++11#Thefollowingdefinemakesyourcompileremitwarningsifyouuse#anyQ
- Flutter 简化线程Isolate的使用
CodeOfCC
flutterflutter开发语言dart多线程
文章目录前言一、完整代码二、使用示例1、通过lambda启动线程2、获取线程返回值3、线程通信4、结束isolate总结前言flutter的线程是数据独立的,每个线程一般通过sendport来传输数据,这样使得线程调用没那么方便,本文将提供一种支持lambda启动isolate的方法,且支持捕获值类型变量,以及支持返回值。一、完整代码由于代码量较少,原理就不介绍了,直接给出完整实现。isolate
- 多线程编程之join()方法
周凡杨
javaJOIN多线程编程线程
现实生活中,有些工作是需要团队中成员依次完成的,这就涉及到了一个顺序问题。现在有T1、T2、T3三个工人,如何保证T2在T1执行完后执行,T3在T2执行完后执行?问题分析:首先问题中有三个实体,T1、T2、T3, 因为是多线程编程,所以都要设计成线程类。关键是怎么保证线程能依次执行完呢?
Java实现过程如下:
public class T1 implements Runnabl
- java中switch的使用
bingyingao
javaenumbreakcontinue
java中的switch仅支持case条件仅支持int、enum两种类型。
用enum的时候,不能直接写下列形式。
switch (timeType) {
case ProdtransTimeTypeEnum.DAILY:
break;
default:
br
- hive having count 不能去重
daizj
hive去重having count计数
hive在使用having count()是,不支持去重计数
hive (default)> select imei from t_test_phonenum where ds=20150701 group by imei having count(distinct phone_num)>1 limit 10;
FAILED: SemanticExcep
- WebSphere对JSP的缓存
周凡杨
WAS JSP 缓存
对于线网上的工程,更新JSP到WebSphere后,有时会出现修改的jsp没有起作用,特别是改变了某jsp的样式后,在页面中没看到效果,这主要就是由于websphere中缓存的缘故,这就要清除WebSphere中jsp缓存。要清除WebSphere中JSP的缓存,就要找到WAS安装后的根目录。
现服务
- 设计模式总结
朱辉辉33
java设计模式
1.工厂模式
1.1 工厂方法模式 (由一个工厂类管理构造方法)
1.1.1普通工厂模式(一个工厂类中只有一个方法)
1.1.2多工厂模式(一个工厂类中有多个方法)
1.1.3静态工厂模式(将工厂类中的方法变成静态方法)
&n
- 实例:供应商管理报表需求调研报告
老A不折腾
finereport报表系统报表软件信息化选型
引言
随着企业集团的生产规模扩张,为支撑全球供应链管理,对于供应商的管理和采购过程的监控已经不局限于简单的交付以及价格的管理,目前采购及供应商管理各个环节的操作分别在不同的系统下进行,而各个数据源都独立存在,无法提供统一的数据支持;因此,为了实现对于数据分析以提供采购决策,建立报表体系成为必须。 业务目标
1、通过报表为采购决策提供数据分析与支撑
2、对供应商进行综合评估以及管理,合理管理和
- mysql
林鹤霄
转载源:http://blog.sina.com.cn/s/blog_4f925fc30100rx5l.html
mysql -uroot -p
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
[root@centos var]# service mysql
- Linux下多线程堆栈查看工具(pstree、ps、pstack)
aigo
linux
原文:http://blog.csdn.net/yfkiss/article/details/6729364
1. pstree
pstree以树结构显示进程$ pstree -p work | grep adsshd(22669)---bash(22670)---ad_preprocess(4551)-+-{ad_preprocess}(4552) &n
- html input与textarea 值改变事件
alxw4616
JavaScript
// 文本输入框(input) 文本域(textarea)值改变事件
// onpropertychange(IE) oninput(w3c)
$('input,textarea').on('propertychange input', function(event) {
console.log($(this).val())
});
- String类的基本用法
百合不是茶
String
字符串的用法;
// 根据字节数组创建字符串
byte[] by = { 'a', 'b', 'c', 'd' };
String newByteString = new String(by);
1,length() 获取字符串的长度
&nbs
- JDK1.5 Semaphore实例
bijian1013
javathreadjava多线程Semaphore
Semaphore类
一个计数信号量。从概念上讲,信号量维护了一个许可集合。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并采取相应的行动。
S
- 使用GZip来压缩传输量
bijian1013
javaGZip
启动GZip压缩要用到一个开源的Filter:PJL Compressing Filter。这个Filter自1.5.0开始该工程开始构建于JDK5.0,因此在JDK1.4环境下只能使用1.4.6。
PJL Compressi
- 【Java范型三】Java范型详解之范型类型通配符
bit1129
java
定义如下一个简单的范型类,
package com.tom.lang.generics;
public class Generics<T> {
private T value;
public Generics(T value) {
this.value = value;
}
}
- 【Hadoop十二】HDFS常用命令
bit1129
hadoop
1. 修改日志文件查看器
hdfs oev -i edits_0000000000000000081-0000000000000000089 -o edits.xml
cat edits.xml
修改日志文件转储为xml格式的edits.xml文件,其中每条RECORD就是一个操作事务日志
2. fsimage查看HDFS中的块信息等
&nb
- 怎样区别nginx中rewrite时break和last
ronin47
在使用nginx配置rewrite中经常会遇到有的地方用last并不能工作,换成break就可以,其中的原理是对于根目录的理解有所区别,按我的测试结果大致是这样的。
location /
{
proxy_pass http://test;
- java-21.中兴面试题 输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 , 使其和等于 m
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
public class CombinationToSum {
/*
第21 题
2010 年中兴面试题
编程求解:
输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 ,
使其和等
- eclipse svn 帐号密码修改问题
开窍的石头
eclipseSVNsvn帐号密码修改
问题描述:
Eclipse的SVN插件Subclipse做得很好,在svn操作方面提供了很强大丰富的功能。但到目前为止,该插件对svn用户的概念极为淡薄,不但不能方便地切换用户,而且一旦用户的帐号、密码保存之后,就无法再变更了。
解决思路:
删除subclipse记录的帐号、密码信息,重新输入
- [电子商务]传统商务活动与互联网的结合
comsci
电子商务
某一个传统名牌产品,过去销售的地点就在某些特定的地区和阶层,现在进入互联网之后,用户的数量群突然扩大了无数倍,但是,这种产品潜在的劣势也被放大了无数倍,这种销售利润与经营风险同步放大的效应,在最近几年将会频繁出现。。。。
如何避免销售量和利润率增加的
- java 解析 properties-使用 Properties-可以指定配置文件路径
cuityang
javaproperties
#mq
xdr.mq.url=tcp://192.168.100.15:61618;
import java.io.IOException;
import java.util.Properties;
public class Test {
String conf = "log4j.properties";
private static final
- Java核心问题集锦
darrenzhu
java基础核心难点
注意,这里的参考文章基本来自Effective Java和jdk源码
1)ConcurrentModificationException
当你用for each遍历一个list时,如果你在循环主体代码中修改list中的元素,将会得到这个Exception,解决的办法是:
1)用listIterator, 它支持在遍历的过程中修改元素,
2)不用listIterator, new一个
- 1分钟学会Markdown语法
dcj3sjt126com
markdown
markdown 简明语法 基本符号
*,-,+ 3个符号效果都一样,这3个符号被称为 Markdown符号
空白行表示另起一个段落
`是表示inline代码,tab是用来标记 代码段,分别对应html的code,pre标签
换行
单一段落( <p>) 用一个空白行
连续两个空格 会变成一个 <br>
连续3个符号,然后是空行
- Gson使用二(GsonBuilder)
eksliang
jsongsonGsonBuilder
转载请出自出处:http://eksliang.iteye.com/blog/2175473 一.概述
GsonBuilder用来定制java跟json之间的转换格式
二.基本使用
实体测试类:
温馨提示:默认情况下@Expose注解是不起作用的,除非你用GsonBuilder创建Gson的时候调用了GsonBuilder.excludeField
- 报ClassNotFoundException: Didn't find class "...Activity" on path: DexPathList
gundumw100
android
有一个工程,本来运行是正常的,我想把它移植到另一台PC上,结果报:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mobovip.bgr/com.mobovip.bgr.MainActivity}: java.lang.ClassNotFoundException: Didn't f
- JavaWeb之JSP指令
ihuning
javaweb
要点
JSP指令简介
page指令
include指令
JSP指令简介
JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。
JSP指令的基本语法格式:
<%@ 指令 属性名="
- mac上编译FFmpeg跑ios
啸笑天
ffmpeg
1、下载文件:https://github.com/libav/gas-preprocessor, 复制gas-preprocessor.pl到/usr/local/bin/下, 修改文件权限:chmod 777 /usr/local/bin/gas-preprocessor.pl
2、安装yasm-1.2.0
curl http://www.tortall.net/projects/yasm
- sql mysql oracle中字符串连接
macroli
oraclesqlmysqlSQL Server
有的时候,我们有需要将由不同栏位获得的资料串连在一起。每一种资料库都有提供方法来达到这个目的:
MySQL: CONCAT()
Oracle: CONCAT(), ||
SQL Server: +
CONCAT() 的语法如下:
Mysql 中 CONCAT(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3,等字串连在一起。
请注意,Oracle的CON
- Git fatal: unab SSL certificate problem: unable to get local issuer ce rtificate
qiaolevip
学习永无止境每天进步一点点git纵观千象
// 报错如下:
$ git pull origin master
fatal: unable to access 'https://git.xxx.com/': SSL certificate problem: unable to get local issuer ce
rtificate
// 原因:
由于git最新版默认使用ssl安全验证,但是我们是使用的git未设
- windows命令行设置wifi
surfingll
windowswifi笔记本wifi
还没有讨厌无线wifi的无尽广告么,还在耐心等待它慢慢启动么
教你命令行设置 笔记本电脑wifi:
1、开启wifi命令
netsh wlan set hostednetwork mode=allow ssid=surf8 key=bb123456
netsh wlan start hostednetwork
pause
其中pause是等待输入,可以去掉
2、
- Linux(Ubuntu)下安装sysv-rc-conf
wmlJava
linuxubuntusysv-rc-conf
安装:sudo apt-get install sysv-rc-conf 使用:sudo sysv-rc-conf
操作界面十分简洁,你可以用鼠标点击,也可以用键盘方向键定位,用空格键选择,用Ctrl+N翻下一页,用Ctrl+P翻上一页,用Q退出。
背景知识
sysv-rc-conf是一个强大的服务管理程序,群众的意见是sysv-rc-conf比chkconf
- svn切换环境,重发布应用多了javaee标签前缀
zengshaotao
javaee
更换了开发环境,从杭州,改变到了上海。svn的地址肯定要切换的,切换之前需要将原svn自带的.svn文件信息删除,可手动删除,也可通过废弃原来的svn位置提示删除.svn时删除。
然后就是按照最新的svn地址和规范建立相关的目录信息,再将原来的纯代码信息上传到新的环境。然后再重新检出,这样每次修改后就可以看到哪些文件被修改过,这对于增量发布的规范特别有用。
检出