Git使用简析

git工具的安装及使用 git工具的安装及使用。 阅读详情

推送本地操作

  • 初始化一个本地Git仓库,在需要添加版本控制的文件夹根目录中使用git init命令。

  • 添加文件到本地Git仓库:

git add 文件名 # 添加文件到暂存区
git add . # 添加多个文件到暂存区
git add -all # 添加多个文件到暂存区
git commit # 提交更改,实际上就是把暂存区的所有内容提交到本地仓库当前分支。
  • 查看工作区的状态,使用git status命令。

  • 如果git status告诉你有文件被修改过,用git diff可以查看修改内容。

  • 查看操作历史记录可用git log命令查看,git log命令显示从最近到最远的提交日志。如果觉得输出信息太多,可以加上–pretty=oneline参数。

  • 在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100,版本回退命令使用git reset命令,回退之后可以再恢复到回退前的版本,只要上面的命令行窗口还没有被关掉,找到commit id 回退到指定版本,版本id不用全写,前几位就可以了,Git会自动去找。也可以通过命令git reflog用来查看你输入的每一次命令,查找到回退前的版本号。

git reset --hard HEAD^ # 回退到上一版本
git reset --hard 3628164 # 回退到指定版本
git reflog # 查看你输入的每一次命令
  • 使用命令git checkout – file可以直接丢弃工作区的修改,使用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区。
git checkout -- 文件名 # 丢弃工作区的修改
git reset HEAD 文件名 # 把暂存区的修改撤销掉,重新放回工作区
  • 命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。

推送到远程仓库

  • 由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置:
    第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"

你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面,
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容,
点“Add Key”,你就应该看到已经添加的Key。

  • 登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库。
    在本地的git仓库下运行命令:
$ git remote add origin github复制下来的仓库地址  # 把本地git仓库与github仓库关联起来
  • 把本地git仓库的所有内容推送到远程github仓库上:
    由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
git push -u origin master # 第一次推送到master分支时,加上了-u参数
git push origin master # 把本地master分支的最新修改推送至GitHub
  • 从远程github仓库克隆到本地,使用命令git clone
git clone github仓库地址 # 从远程github仓库克隆到本地
  • 创建分支
git checkout -b dev  # 创建dev分支,然后切换到dev分支
// 相当于以下两条命令
git branch dev  # 创建
git checkout dev # 切换

git branch # 查看当前分支

然后,我们就可以在dev分支上正常提交

git add readme.txt 
git commit -m "branch 注释"

git checkout master # 在dev分支的工作完成,切换回到master分支
  • 使用git merge命令用于合并指定分支到当前分支
git merge dev # 把dev分支的工作成果合并到master分支上

git branch -d dev # 合并后可以删除dev分支
  • 解决冲突
    合并分支的时候有时候会存在冲突,git status命令可以告诉我们冲突的文件。
    Git用<<<<<<<,=======,>>>>>>>标记出不同分支冲突的内容,修改后再提交。
git add 冲突文件 # 修改后提交

git log --graph --pretty=oneline --abbrev-commit # 用带参数的git log也可以看到分支的合并情况。
  • 分支管理

通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。

/* 合并dev分支,请注意--no-ff参数,表示禁用Fast forward,因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。*/
git merge --no-ff -m "merge with no-ff" dev 

// 合并后,可用git log看看分支历史
git log --graph --pretty=oneline --abbrev-commit

分支策略:在实际开发中,我们应该按照几个基本原则进行分支管理:
首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。

  • Bug分支

软件开发中,bug就像家常便饭一样。有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。

当你接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue-101来修复它,但是如果当前正在dev上进行的工作还没有提交,并不是你不想提交,而是工作只进行到一半,还没法提交,预计完成还需1天时间。但是,必须在两个小时内修复该bug,怎么办?

可以用Git提供的stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:

git stash # 暂存当前的工作进度信息

现在,用git status查看工作区,就是干净的(除非有没有被Git管理的文件),因此可以放心地创建分支来修复bug。

首先确定要在哪个分支上修复bug,假定需要在master分支上修复,就从master创建临时分支:

git checkout master # 切换到主分支
git checkout -b bug-101 # 创建并切换到bug-101分支

git add 修复bug后的的文件  # 添加到暂存区   
git commit -m "fix bug 101"  # 提交到本地bug-101分支仓库

git checkout master # 切换到master主分支
git merge --no-ff -m "merged bug fix 101" bug 101 # 把bug-101分支合并到master主分支
git branch -d bug 101 # 删除bug 101分支

修复Bug后,接着回到dev分支干活

git checkout dev # 切换到dev分支
git status # 查看工作区

// 工作区是空的,因为刚刚我们已经将工作区暂存起来了
git stash list # 用git stash list命令查看工作现场去哪了

/* 工作现场还在,Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法
一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除
另一种方式是用git stash pop,恢复的同时把stash内容也删了*/
git stash pop # 恢复工作现场的同时把stash内容也删了

git stash list  # 再用git stash list查看,就看不到任何stash内容了

你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令:

git stash apply stash@{0}  # 恢复指定的stash

分支还没有被合并,如果删除,将丢失掉修改,如果要强行删除,需要使用命令git branch -D 分支名称

git branch -D feature-vulcan # 强行删除feature-vulcan分支
  • 多人协作

当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin。

// 查看远程库的信息
git remote

// 显示远程库更详细的信息,如果可以抓取和推送就会显示origin的地址。如果没有推送权限,就看不到push的地址。
git remote -v 

推送分支,就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上

git push origin master # 推送到远程库中的master分支上

git push origin dev # 推送到远程库中的Dev分支上

本地分支往远程推送,哪些分支需要推送,哪些不需要呢?
master分支是主分支,因此要时刻与远程同步;
dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;
其他分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。
总之,就是在Git中,分支完全可以在本地自己藏着玩,是否推送,视你的心情而定!

多人协作的工作模式:
首先,可以用git push origin branch-name推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch –set-upstream branch-name origin/branch-name。

  • 标签管理

发布一个版本时,我们通常先在版本库中打一个标签(tag)。
在Git中打标签非常简单,首先,切换到需要打标签的分支上:

git branch  # 查看分支

git checkout master # 切换到master分支

git tag v1.0 # 打一个v1.0新标签

git tag # 查看所有标签

默认标签是打在最新提交的commit上的。有时候,如果忘了打标签,比如,现在已经是周五了,但应该在周一打的标签没有打,怎么办?
方法是找到历史提交的commit id,然后打上就可以了:

git log --pretty=oneline --abbrev-commit # 查看历史提交的commit id

git tag v0.9 commitId  # 打一个v0.9的标签到commitId版本上

git show v0.9 # 查看v0.9标签信息

还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:

// -a指定标签名,-m指定说明文字,3628164是指定commit id版本号
git tag -a v0.1 -m "version 0.1 released" 3628164 

还可以通过-s用私钥签名一个标签:

git tag -s v0.2 -m "signed version 0.2 released" fec145a

签名采用PGP签名,因此,必须首先安装gpg(GnuPG),如果没有找到gpg,或者没有gpg密钥对,就会报错:

gpg: signing failed: secret key not available
error: gpg failed to sign the data
error: unable to sign the tag

如果报错,请参考GnuPG帮助文档配置Key。
用命令git show tagname可以看到PGP签名信息。
用PGP签名的标签是不可伪造的,因为可以验证PGP签名。

操作标签

git tag -d v0.1 # 本地标签直接删除

git push origin v1.0 # 推送v1.0标签到远程仓库

git push origin --tags # 推送全部尚未推送到远程的本地标签

// 如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除
git tag -d v0.9 # 删除本地标签
git push origin :refs/tags/v0.9 # 删除远程仓库标签
  • 忽略特殊文件

在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。

不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了。所有配置文件可以直接在线浏览:https://github.com/github/gitignore

忽略文件的原则是:
忽略操作系统自动生成的文件,比如缩略图等;
忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。

举个例子:
假设你在Windows下进行Python开发,Windows会自动在有图片的目录下生成隐藏的缩略图文件,如果有自定义目录,目录下就会有Desktop.ini文件,因此你需要忽略Windows自动生成的垃圾文件:

# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini

然后,继续忽略Python编译产生的.pyc、.pyo、dist等文件或目录:

# Python:
*.py[cod]
*.so
*.egg
*.egg-info
dist
build

加上你自己定义的文件,最终得到一个完整的.gitignore文件,内容如下:

# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini

# Python:
*.py[cod]
*.so
*.egg
*.egg-info
dist
build

# My configurations:
db.ini
deploy_key_rsa

最后一步就是把.gitignore也提交到Git,就完成了!当然检验.gitignore的标准是git status命令是不是说working directory clean。

使用Windows的童鞋注意了,如果你在资源管理器里新建一个.gitignore文件,它会非常弱智地提示你必须输入文件名,但是在文本编辑器里“保存”或者“另存为”就可以把文件保存为.gitignore了。

有些时候,你想添加一个文件到Git,但发现添加不了,原因是这个文件被.gitignore忽略了:

$ git add App.class
The following paths are ignored by one of your .gitignore files:
App.class
Use -f if you really want to add them.

如果你确实想添加该文件,可以用-f强制添加到Git:

$ git add -f App.class

或者你发现,可能是.gitignore写得有问题,需要找出来到底哪个规则写错了,可以用git check-ignore命令检查:

$ git check-ignore -v App.class
.gitignore:3:*.class    App.class

Git会告诉我们,.gitignore的第3行规则忽略了该文件,于是我们就可以知道应该修订哪个规则。


参考文献:

廖雪峰Git教程

Pro Git(中文版)

1 四种防反接电路——multisim仿真 摘要:防反接电路可防止电源反接损坏器件,主要有四种方案:1)二极管串联(低成本,适用小电流);2)整流桥(无极性输入,但效率低);3)保险丝+稳压管(低损耗但需更换);4)MOS管方案(大电流、高效率,主流选择)。选型需考虑电流、压降和成本,MOS管因其低导通电阻(毫欧级)成为大电流应用的首选。口诀:"小电流二极管,大电流用MOS"可快速指导设计。 阅读详情

相关推荐

【学习路线】 游戏客户端开发入门到进阶

游戏开发是一个交叉性极强的技术领域,对开发者提出了高维度的要求。作为初学者,不要急于求成,打牢基础、注重原理、勤于实践,你的成长将会非常快速而稳健。希望这份学习路线与书单能为你指明方向,迈出职业开发者的第一步。

hhw_hhw的博客 2128

Git原理入门简析

为了获得更好的阅读体验,建议访问原地址:传送门 前言: 之前听过公司大佬分享过 Git 原理之后就想来自己总结一下,最近一忙起来就拖得久了,本来想塞更多的干货,但是不喜欢拖太久,所以先出一版足够入门的; 一、Git 简介 Git 是当前流行的分布式版本控制管理工具,最初由 Linux Torvalds (Linux 之父) 创造,于 2005 年发布。 Git,这个词其实源自英国...

anye0005的博客 370

RV1126平台JD9366触摸屏驱动移植实战:从源码到烧录的完整指南

本文详细介绍了在RV1126平台上移植JD9366触摸屏驱动的完整流程,从环境准备、源码获取到驱动配置、内核编译、设备树设置以及固件烧录与测试验证。通过实战经验分享和常见问题排查,帮助开发者高效完成触摸屏驱动移植,适用于嵌入式Linux开发场景。

weixin_30872337的博客 409

JGIT的git status源码简析

JGIT库可以通过git.status().call()来获取当前working copy的文件变动情况,功能类似与命令行的git status,以下从源码角度简析git status的实现原理: public Status call() throws GitAPIException, NoWorkTreeException { if (workingTreeIt ==...

highrain的博客 931

matlab球面投影(二)

matlab球面投影,想做一个全景相机,不知道,要做成啥样,于是在MATLAB先仿真一下,看下是个啥样子 百度别人做的,复制下面的代码到MATLAB的命令串口下,,网上找了张全景图,可以是bmp,jpg,改程序就可以了 回车运行就可以看到结果。 复制下面代码时,下面的中文注释记得删除,MATLAB是会报错的, close all; clear all; clc [x,y,z]=sphere(50); A=imread('a.JPG'); //名字是自己命名的,记得改 B=warp(x,y,-z,

rjszcb的博客 3162

水文预报新手别怕!用Matlab 18小时搞定马斯京根法参数K和x(附完整代码)

本文详细介绍了如何使用Matlab在18小时内快速掌握水文预报中的马斯京根法参数K和x的求解方法。通过完整的代码示例和分步解析,帮助新手从理论到实践快速跨越,解决传统手工试算耗时耗力的问题,提升水文预报的效率和精度。

weixin_42573113的博客 256

Git内部存储原理简析

git基础入门请参考之前的博文 1、.git目录结构 hooks:钩子程序,可以被用于在执行git命令时自动执行一些特定操作; info :保存了不希望在.gitignore文件中管理的忽略模式 logs :存储操作日志目录 objects :保存git对象(数据)的目录,包括三类对象commit、tree和blob refs :保存分支和tag的当前提交指针 config :项目配置文件 d...

qqxhb 资源共享 449

NE555构成多谐振荡器及三角波、正弦波的生成(附工程文件)

NE555构成多谐振荡器及三角波、正弦波的生成 续上一篇:NE555基本原理及相关公式的推导

qq_49979053的博客 5万+

git 提交 报错 无法简析 域名

正确做法 :(gitee , gitlab) 在项目连接远程库时 在网页地址栏 复制url。当git提交项目时是 无法 简析 识别 此地址。原因是在git提交的远程地址是。

m0_71615654的博客 400

MBD-从一个示例看代码生成过程(rtw文件、TLC语言)

大概介绍了MBD代码生成流程,rtw文件、TLC语言

小胡同学的工程师学习之路 4214

YOLOv8改进 | Neck篇 | Slim-Neck替换特征融合层实现超级涨点 (又轻量又超级涨点)

本文给大家带来的改进机制是Slim-neck提出的Neck部分,Slim-neck是一种设计用于优化卷积神经网络中neck部分的结构。在我们YOLOv8中,neck是连接主干网络(backbone)和头部网络(head)的部分,负责特征融合和处理,以便提高检测的准确性和效率。亲测在小目标检测和大尺度目标检测的数据集上都有大幅度的涨点效果(mAP直接涨了大概有0.4左右。同时本文对Slim-Neck的框架原理进行了详细的分析,不光让大家会添加到自己的模型在写论文的时候也能够有一定的参照。

Snu77的博客 1万+

Git SSH Key 生成简析

前言:Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置。github的SSH配置如下:一 、设置Git的user name和email:gitconfig–globaluser.name“qiuping.dong” git config –global user.name “qiuping.dong” git config –global u

Demi的博客 483

交换机背板带宽、交换容量与包转发率到底是啥?

在网络工程中,交换机是核心设备之一,而关于它的性能指标,背板带宽、交换容量、以及包转发率往往成为人们衡量其性能的重要参数。这些术语的定义、关系、以及在实际场景中的应用,都对交换机的选型与部署有着重要意义。本文将为您全面解读这些概念,帮助您深入了解交换机的核心性能指标。

网络技术联盟站 1549

linux GIT 本地仓库 入门命令简析

因为多方面原因,我们总是修改代码,当某个时刻发现代码可以使用另一个方法函数(思路总是莫名出现),又去删除辛辛苦苦码的代码。最后发现这个函数又遇到了小小问题而不适用,打算回滚到上次码的代码。Ctrl+Z按倒手抽筋也找不回…此时Git就是来救命的! 学习Git很重要(敲黑板/重点)安装git在linux下:sudo apt-get install git windows下推荐使用Git GUI给你的g

河边的猫咪的博客 1318

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Git的5个区域作用简析

图是从别处引用的。该图很好的解析了git的5个分区之间的转换关系,下面简单描述自己的理解: remote repository:远程仓库。存放在远程服务器(例如github)上的仓库,没有在本地。 origin(remote name):本地远程仓库。本地无法修改这个仓库,只能从远程服务器仓库通过网络进行更新。存在的意义是为了git向远程仓库push之前进行merge的参照物。git fe...

dxz00ww的专栏 362

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

GIT实战篇,教你如何使用GIT可视化工具

经过前三期的学习,不管是GIT模型还是GIT命令,相信大家都已经有了比较全面的了解。当然,尽管GIT命令永远是最强大而全面的,但其并不是只能使用命令来控制,我们还可以使用一些可视化工具。通过界面按钮,能大大提高我们的使用效率。不过,前提是我们已经知道其运行机制,不然就会导致意料之外的情况,这些内容,今天我就带大家一起来学习一些可视化工具的内容

战斧的博客 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

git使用

前言 之前项目里一直都是用svn进行代码的版本控制,自己对svn仓库的搭建以及svn的使用还是挺熟练的,但是git作为一个更牛逼的版本控制工具,而且互联网上很多具有开源精神的大神也在github上托管了自己的代码,还是很值得我学习使用一下的,这里会记录自己学习使用git的一些心得,会持续的更新 入门 我系统的是ubuntu12.04 desktop,默认情况下,ubuntu中没有安装

小一的专栏 1万+

Git教程——git使用

GIT是目前最先进的分布式版本控制系统。这篇文章我们来学习Git教程——git使用。我们主要通过git初始化、增删改查、提交文件到仓库、版本库控制等操作来学习git的使用。

霖hero 4082

git 使用教程

替换暂存区和以及工作区中的文件。

weixin_43674738的博客 1139

git使用—git使用笔记

git diff,git status,git branch,git checkout,git commit -m,git add -A

Carson IT之旅 2257

Git的搭建和使用

git与github介绍 Git是什么 Git是一个开源的[分布式][版本控制系统],用于敏捷高效地处理任何或小或大的项目 版本控制器 CVS/SVN/Git SVN 客户端/服务器 GIT 客户端/代码托管网站(例如:github) 注1:类似的代码托管网站还有:github/码云/阿里云Code源码管理 注2:类似的技术GitLab,但它与GitHub又有一定的区别 GitLab和GitHub...

linyaodonga的博客 4069

Git的认识和使用

快速学会gitee.com的使用

weixin_62735525的博客 1502

【Git】使用 SSH 进行 Git 操作的完整步骤

使用 **SSH** 进行 Git 操作的完整步骤。从 **git clone** 到 **git push**,并确保之后不需要输入密码。

LuckiBit 588

Windows开发工具环境管理:Git、Node.js、Python多版本与PATH冲突排查

Windows开发工具安装成功却无法运行,或始终调用错误版本?本文围绕Git、Node.js、Python及Codex CLI,系统讲解PowerShell命令解析、PATH环境变量、版本管理器冲突、npm脚本入口、Python install manager与虚拟环境管理。通过可复制的排查命令、Mermaid流程图、只读诊断工具和离线PATH实验,帮助开发者建立稳定、清晰、可复现的Windows开发工具链。

flyingonpine的博客 694
上一篇: Android原生系统API自带dp、px、sp单位转换
下一篇: Android 中使用自定义ttf字体实现酷炫效果
道郭
博客等级 码龄14年 2粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值