git使用说明-全是干货

本文介绍了Git的核心概念,如分布式版本库、暂存区、工作区,以及Git的基本操作流程,包括注册账号、配置、从GitHub下载资料、gitstatus、gitadd、gitcommit、gitreset、gitdiff、gittag和gitpatch等内容。

简述

        Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

        Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

        Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念

相关专业名词

        staged changes:已更改的东西

        unstaged changes:未更改的东西

        stage 暂存区

工作区(Working Directory)

        就是你在电脑里能看到的目录,比如我的dpdk文件夹就是一个工作区:

版本库(Repository)

        工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

        Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

第一步:注册账号

        因为我们会经在GitHub网站上下载资料,又因访问国外的网站,下载较大的文件经常会失败,所以我们要注册一个GitHub账号,同时再去设置ssh文件传输。不配置SSH,GitHub的URL不能下载,大文件传输通过SSH稳定。

        ubuntu系统:apt-get install git

        centos系统:yum install git

第二步:配置git

        在我们使用系统的环境中配置:

        git config --global user.name //配置用户名(github官网注册的用户名)

        git config --global xxxxxx@mail.com   //配置用户邮箱(gitub官网注册绑定的邮箱)

第三步:从github网站下载资料

        git clone

                git clone git://dpdk.org/dpdk

                或者

                git clone DPDK 19.08, Biggest Release of 2019, is Now Available - DPDK

        git config

        查看当前git环境详细配置

                git config -l 

        查看当前用户配置

                配置文件在~/gitconfig

                git config --global --list 

        注:当前是普通用户,若当前在root用户下,可用git config -l和git config --system –list

        查看系统config

                配置文件在git安装目录/etc/gitconfig

                git config --system --list

        查看当前仓库配置信息

                git config --local --list 

        注:一定要在有git管理的目录下去执行查看当前仓库的配置信息

        当前仓库下的目录结构:

git status -s 状态码(精简输出)

        第一列字符表示版本库与暂存区之间的比较状态

        第二列字符表示暂存区与工作区之间的比较状态

        M = 修改 > 文件的内容或者mode被修改了.

        A = 已添加 > 你本地新增的文件(服务器上文件没有新增)

        D = 已删除 > 本地删除的文件(服务器上文件还在).

        R = 重命名 > 文件名被修改

        C = 复制 > 文件的一个拷贝

        U = 已更新但尚未装入 > 文件没有被合并(需要完成合并才能进行提交)

        T = 文件的类型被修改了 > 文件的类型被修改

        ' ' (空格)表示文件未发生更改

        ? 表示未跟踪文件(untracked)。

        ! 表示忽略文件。

        未跟踪和忽略文件会显示相同的两列,如 ??

        根据提示执行:git commit -am “提交最好体现更改了什么***************”

参考:

git status 状态命令——查看文件状态_git status显示所有文件_BenBenF19的博客-优快云博客

git 使用报错: fatal: Couldn't find remote ref master的解决方法_fatal: couldn't find remote ref develop_base_zs_勋彰的博客-优快云博客

git add

        git add [file-name1] [file-name2] ... 从工作区添加指定文件到暂存区

        git add .  将工作区的被修改的文件和新增的文件提交到暂存区,不包括被删除的文件

        git add -u . u指update,将工作区的被修改的文件和被删除的文件提交到暂存区,不包括新增的文件

        git add -A . A指all,将工作区被修改、被删除、新增的文件都提交到暂存区

        git status -s 命令查看i40e_flow.c文件被修改了,红色的M表示修改的文件,需要提交到暂存区或直接提交到仓库中。

        根据提示可以去执行git add .或者git commit -a,加了-a,在 commit 的时候,能帮你省一步 git add ,但也只是对修改删除文件有效, 新文件还是要 git add,不然就是 untracked 状态

        git add meta-loongarch/recipes-phosphor/images/obmc-phosphor-image%.bbappend

        git add meta-loongarch/recipes-phosphor/packagegroups/packagegroup-loongarch-apps.bb

        git add  meta-loongson/meta-loongson-la2k500-evb/conf/local.conf.sample

        红色的M表示源文件已经被修改,git add 后颜色有红色变为绿色,表示从工作区添加指定文件到暂存区

git diff

        比较与上版本有什么区别在哪;

        我们执行下git add . ,再去执行下git status -s

git commit

        提交到工作区:"1095 ft2000/6420230621 Initial version"

        查看状态: git status

        查看分支:git branch

        查看log:git log

git log

        查看提交的日志

        使用git log 命令可以查看commit ID,commit ID会比较长,使用时可仅使用前几个字母表示

第四步:自行创建git管理

        创建一个文件夹例如mkdir gittest,进入文件夹cd gittest,执行git init

        现在你可以看到在你的项目中生成了 .git 这个子目录,这就是你的 Git 仓库了,所有有关你的此项目的快照数据都存放在这里。.git 默认是隐藏的,可以用 ls -a 命令查看。

如何创建.gitignore文件,忽略git不必要提交的文件

        1、在需要创建 .gitignore 文件的文件夹, 右键选择Git Bash 进入命令行,进入项目所在目录;

        2、输入 touch .gitignore ,生成“.gitignore”文件;

        3、在”.gitignore” 文件里输入你要忽略的文件夹及其文件就可以了。(注意格式);

总结

git config

        git config -l 查看当前git环境详细配置

        git config --system --list 查看系统config,配置文件在git安装目录/etc/gitconfig

        git config --global --list 查看当前用户配置,配置文件在~/gitconfig

        git config --local --list 查看当前仓库配置信息

编辑git配置文件

        git config -e 针对当前仓库

        git config -e --global 针对系统上所有仓库

git init && clone

        git init  在当前目录新建一个仓库

        git init [project-name]在一个目录下新建本地仓库

        git clone <repo> 从现有的Git仓库中拷贝项目(类似svn checkout)

克隆到指定目录

        git clone <repo> <directory> 参数说明:Gitc仓库 directory  本地目录

        比如,要克隆Ruby语言的Git代码仓库Git,可以用下面的命令:

                git clone git://github.com/schacon/grit.git

        执行该命令后,会在当前目录下创建一个名为grit的目录,其中包含一个.git的目录,用于保存下载下来的所有版本记录。

        如果要自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字:

        git clone git://github.com/scharon/grit.git mygrit

git diff 

        git diff HEAD -- ,查看最新本地版本库和工作区所有文件的区别

        git diff HEAD --[file-name] 查看最新本地版本库和工作区文件的却别

        git diff HEAD^ --[file-name] 查看本地上一个版本和工作区文件的却别

        git diff [local branch] origin/[remote branch] 比较本地分支和远程分支的区别

git status

        git status [file-name] 查看指定文件状态

        git status -s          查看所有文件状态

git add

        git add [file-name1] [file-name2] ... 从工作区添加指定文件到暂存区

        git add . 将工作区的被修改的文件和新增的文件提交到暂存区,不包括被删除的文件

        git add -u . u指update,将工作区的被修改的文件和被删除的文件提交到暂存区,不包括新增的文件

        git add -A . A指all,将工作区被修改、被删除、新增的文件都提交到暂存区

git commit

        git commit -m [message] 将暂存区所有文件添加到本地仓库

        git commit [file-name1] [file-name2] -m [message] 将暂存区指定文件添加到本地仓库

        git commit -am [massage] 将工作区的内容直接加入本地仓库

        git commit --amend 快速将当前文件修改合并到最新的commit,不会产生新的commit。在提交commit后发现还有部分文件修改忘记提交了可以是用该命令

        加-m是指直接在后面写上版本的注释,不加-m的话会用一个vim打开文件让你写入massage,有未追踪的文件将会失败,需要add加入暂存区。

git reset 

        git reset命令用于回退版本,可以指定退回某一次提交的版本

        语法格式如下:

            git reset [--soft | --mixed | --hard] [HEAD]

        HEAD 说明:

        HEAD 表示当前版本

        HEAD^ 上一个版本

        HEAD^^ 上上一个版本

        HEAD^^^ 上上上一个版本

以此类推...

        可以使用 ~数字表示

        HEAD~0 表示当前版本

        HEAD~1 上一个版本

        HEAD^2 上上一个版本

        HEAD^3 上上上一个版本

以此类推...

git reset HEAD^            # 回退所有内容到上一个版本 

 git reset HEAD^ hello.c  # 回退 hello.c 文件的版本到上一个版本 

 git  reset  563se           # 回退到指定版本

git reszet 三种模式分别为mixed(默认)、soft、hard

        参考:Git reset 三种模式(hard,soft,mixed)_hard mixed soft_笑会儿的博客-优快云博客

        可通过git log 查看想要回退到的 commit id

        git reset --mixed是默认的提交撤销方式,也是最常用的一种方式。它可以撤销当前分支上的一个或多个提交,并将这些提交的更改从暂存区中移除,但保留这些更改的文件在你的工作目录中。这意味着你可以编辑和重新提交这些更改。

        git reset --soft是另一种常用的提交撤销方式,它比git reset --mixed更加灵活。与git reset --mixed不同的是,git reset --soft不会更改你的工作目录或暂存区。这意味着你可以保留之前提交的更改,并将它们作为一个新的提交提交到远程代码仓库。

        git reset --hard会彻底删除提交并丢弃所有更改。这意味着你将丢失所有未提交的更改,并且无法还原。

git reset --mixed(默认)

        --mixedw为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。

git reset --soft

git reset –hard

        注意:谨慎使用 –-hard 参数,它会删除回退点之前的所有信息。

创建仓库命令

        git init 初始化仓库

        git clone 拷贝一份远程仓库,也就是下载一个项目

提交与修改

        git add  添加文件到暂存区

        git status 查看仓库当前的状态,显示有变更的文件

        git diff 比较文件的不同,即暂存区和工作区的差异

        git commit 提交暂存区到本地仓库

        git reset 回退版本

        git rm 将文件从暂存区和工作区中删除

        git mv 移动或重名工作区文件

提交日志

        git log 查看历史提交记录

        git blame <file> 以列表式查看指定文件的历史修改记录

远程操作

        git remote 远程仓库操作

        git fetch 从远程获取代码库

        git pull 下载远程代码并合并

        git push 上传远程代码并合并

分支管理

        git branch (branchname)创建分支命令

        git branch 列出分支,没有参数时,git branch 会列出你在本地的分支

        git branch -d (branchname)  删除分支命令

        git checkout (branchname) 切换分支命令

        git checkout -b (branchname) 命令来创建新分支并立即切换到该分支下,从而在该分支中操作

         git merge 合并分支命令 

查看提交历史

        git log 查看历史提交记录

        git blame <file> 以列表形式查看指定文件的历史修改记录

git tag 打标签 

        达到一个重要的阶段,并希望永远记住那个特别的提交快照,,你可以git tag给它打上标签

打patch

        patch 指令让用户利用设置修补文件的方式,修改,更新原始文件。倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行。如果配合修补文件的方式则能一次修补大批文件,这也是linux系统核心的升级方法之一。

        推荐大家使用git的format-patch和am命令进行生成patch和打patch,用此方法获得的patch其实就是commit里提交的code修改以及commit信息

方法一:

        git diff > test.patch        生成patch

        git diff 文件名 > test.patch    指定某个文件的修改打patch可以使用

        git diff --cached >  test.patch 已经执行git add 在想打patch可以使用

        git apply --check test.patch    查看patch

        git apply test.patch         使用patch

        对已经提交的代码打patch ,git log 查看那些是需要打ptach的

方法二:

操作步骤:

  1. 首先通过git log 查看有那些commit ID,一共提交了多少次
  2. 例如一共提交4次,commit A、commit B、commit C、commit D;把第一次或者其他次提交的(不包括第一次提交)都生成patch

git format-patch ID(commit A)

后会生成patch文件,例如00001.patch

  1. 在使用git am之前,你要首先git am –abort 一次,来放弃掉以前的am信息。才可以进行一次全新的am
  2. 先检查patch文件:git apply –stat 00001.patch
  3. 检查能否应用成功:git apply –check 00001.patch
  4. 打补丁:git am –signoff < 00001.patch

(使用-s或—signoff选项,可以coomit 信息中加入Signed-off-by信息)

其他用法

        git format-patch                打ptach 这个使用于 已经提交的代码

        git format-patch commit_id1 commit_id2 生成patch

        git apply --check               系统生成的名字  查看patch

        git am 系统生成的名字.patch          应用patch

        git format-patch HEAD^            生成最近的1次commit的patch

        git format-patch HEAD^^           生成最近的2次commit的patch

<think>首先,用户的问题是基于之前的上下文。用户提供了几个引用,但它们是从站内引用的,这些引用讨论了Git作为分布式版本控制系统的基本概念、特性和入门教程。用户的实际需求是:“我想获取分布式版本控制系统Git的基本配置、使用方法及命令的详细实用教程。请问分布式版本控制系统Git基本配置、使用及命令的详细实用教程”。 所以,我需要提供一个详细的、结构清晰的教程,覆盖Git的基本配置、使用方法和常用命令。内容必须基于真实可靠的知识,因为我是一个AI助手,应该提供准确的信息。 回想系统级指令: - 所有行内数学表达式必须使用$...$格式(但Git相关可能没有数学,所以可能不适用)。 - 独立公式用$$...$$(同样,不适用)。 - LaTeX语法正确(这里可能不需要)。 - 使用中文回答。 - 生成相关问题(在回答结尾生成相关问题)。 - 引用的段落末尾自然地添加引用标识(如[^1]),但用户提供的引用是参考,所以我需要引用这些来源。 用户提供了三个引用: - 引用[1]: Git之分布式版本控制系统,介绍了创建、克隆、推送、拉取仓库,以及标签概念。 - 引用[2]: Git简介与特性。 - 引用[3]: Git入门教程,记录了历史变化、协作开发等。 在回答中,我需要引用这些,但由于它们是站内引用,我应该将它们融入我的回答中作为来源参考。 现在,构建回答结构: - 回答结构清晰,帮助用户逐步解决问题。 - 覆盖:基本配置、使用方法、命令的详细实用教程。 - 分成逻辑部分:例如,介绍、安装配置、基本命令(初始化、添加、提交、推送、拉取等)、分支管理、标签等。 大纲: 1. **介绍**:简要介绍Git是什么及其重要性,引用提供的参考。 2. **基本配置**:如何安装Git,配置用户信息。 3. **使用方法**:创建仓库、克隆仓库、添加文件、提交更改、推送远程仓库、拉取更改。 4. **详细命令教程**:列出常用命令,如git init, git clone, git add, git commit, git push, git pull, git branch, git checkout, git merge, git tag等,并给出示例。 5. **总结**:强调最佳实践。 6. **相关问题**:生成相关问题。 确保使用中文回答。 在末尾添加引用标识:自然地引用用户提供的引用,例如,在相关部分末尾添加[^1], [^2], [^3]。 最后,生成相关问题:基于教程内容,生成几个相关问题。 详细步骤: - **安装和配置**: - 安装Git:下载并安装。 - 配置用户信息:git config --global user.name "Your Name", git config --global user.email "your.email@example.com"。 - **基本使用**: - 创建新仓库:git init。 - 克隆仓库:git clone <url>。 - 添加文件:git add <file>。 - 提交更改:git commit -m "message"。 - 推送远程:git push origin master/main。 - 拉取更改:git pull。 - **命令教程**: - 详细解释每个命令的语法、选项、示例。 - 引用融入:例如,在解释分布式特性时引用[^1], [^2]。 现在,生成相关问题: - 例如: 1. 如何解决Git冲突? 2. Git中分支管理的最佳实践是什么? 3. 如何回滚到之前的Git提交? 确保回答真实可靠:基于标准Git知识。 </think>### 分布式版本控制系统Git基本配置、使用及命令详细实用教程 Git是一个开源的分布式版本控制系统,由Linus Torvalds开发,主要用于高效管理项目版本历史、支持多人协作开发、追踪代码变化等。它允许你在本地创建完整仓库副本,无需依赖中央服务器,这使其比集中式系统更灵活可靠(引用[^1])。本教程基于用户提供的引用内容,结合Git官方文档和最佳实践,提供一个结构清晰、逐步指导的实用指南。教程分为三个部分:基本配置、使用方法和命令详解。所有命令均在命令行中执行(如终端或Git Bash),确保以中文界面提示。 --- #### 一、基本配置:Git环境设置 在开始使用Git前,必须先安装Git并配置用户信息。这一步骤确保所有操作都能正确追踪贡献者身份(引用[^2])。 1. **安装Git**: - **下载安装**: - **Windows/Mac用户**:访问[Git官网](https://git-scm.com/)下载安装包,默认选项即可。 - **Linux用户**:运行终端命令安装: ```bash sudo apt-get update # Debian/Ubuntu系统 sudo apt-get install git ``` - **验证安装**:打开终端,输入 `git --version`,输出类似 `git version 2.25.1` 表示成功。 2. **配置用户信息**: - Git需要局设置用户名和邮箱,用于标识提交者身份。 ```bash git config --global user.name "Your Name" # 替换为你的用户名 git config --global user.email "your.email@example.com" # 替换为你的邮箱 ``` - **检查配置**:运行 `git config --list`,查看是否包含 `user.name` 和 `user.email`。 - **可选配置**:设置默认文本编辑器(如VS Code): ```bash git config --global core.editor "code --wait" # 使用VS Code ``` - **配置文件位置**:局配置保存在 `~/.gitconfig` 文件中(引用[^3])。 此配置只需一次,后续所有仓库操作自动继承这些设置(引用[^1])。 --- #### 二、使用方法:Git操作流程 Git使用围绕仓库(Repository)展开,包括创建、克隆、添加文件、提交更改、同步远程等步骤。Git的分布式特性意味着每个开发者拥有完整项目历史,便于离线工作(引用[^2])。本节以实际场景逐步指导。 1. **创建新仓库**: - **初始化仓库**:在项目文件夹运行: ```bash git init # 创建.git隐藏文件夹,表示本地仓库 ``` - **示例**:创建一个名为 `my-project` 的文件夹: ```bash mkdir my-project cd my-project git init ``` 2. **克隆远程仓库**: - 从平台(如GitHub)克隆现有项目: ```bash git clone <repository_url> # 替换为实际URL,例如 https://github.com/user/repo.git ``` - **示例**:克隆后自动创建本地副本: ```bash git clone https://github.com/example/my-repo.git cd my-repo ``` 此时,本地仓库与远程仓库完同步(引用[^1])。 3. **添加文件和提交更改**: - **添加文件到暂存区**:修改或创建文件后,使用 `git add` 标记更改: ```bash git add file.txt # 添加指定文件 git add . # 添加所有更改文件 ``` - **提交更改**:将暂存区内容保存到本地仓库历史: ```bash git commit -m "添加新功能" # -m后接描述性消息,必须清晰 ``` - **查看状态**:运行 `git status`,确认文件状态(如未跟踪或已修改)。 4. **同步远程仓库**: - **推送本地更改到远程**:先将本地仓库关联远程(如果未克隆): ```bash git remote add origin <remote_url> # 例如 git remote add origin https://github.com/user/repo.git ``` 然后推送: ```bash git push origin master # 推送到master分支;或 git push origin main(GitHub默认分支) ``` - **拉取远程更新到本地**:获取远程最新代码并合并: ```bash git pull origin master # 等同于 git fetch + git merge ``` 这确保多人协作时本地代码同步(引用[^3])。 5. **分支管理**(可选但推荐): - 创建分支用于独立开发: ```bash git branch feature-branch # 创建新分支 git checkout feature-branch # 切换到该分支 ``` - 合并分支到主分支先切换回主分支再合并: ```bash git checkout master git merge feature-branch ``` 分支管理能避免冲突,提高团队效率(引用[^2])。 6. **标签管理**: - 创建标签标记重要版本: ```bash git tag v1.0.0 # 轻量标签 git tag -a v1.0.0 -m "发布版本1.0" # 含注释的标签 ``` - 推送标签到远程: ```bash git push origin --tags ``` 标签用于快速回滚或识别里程碑(引用[^1])。 --- #### 三、命令详解:常用Git命令实用指南 以下是Git核心命令的详细说明和示例。每个命令包含语法、选项和实用场景,基于实际开发经验(引用[^3])。 1. **git init**:初始化新仓库。 - 语法:`git init` - 选项:无 - 示例:在空文件夹运行 `git init`,输出 `Initialized empty Git repository in ...`。 2. **git clone**:克隆远程仓库到本地。 - 语法:`git clone <url> [directory]` - 选项:`--depth 1` 只克隆最新提交(节省空间) - 示例:`git clone https://github.com/example/repo.git my-local-repo` 3. **git add**:添加文件到暂存区。 - 语法:`git add <file>` 或 `git add .` - 选项:`-u` 只添加已跟踪文件 - 示例:`git add README.md` 添加单个文件。 4. **git commit**:提交更改到本地仓库。 - 语法:`git commit -m "message"` - 选项:`-a` 自动添加所有修改文件(相当于 `git add . + git commit`) - 示例:`git commit -m "修复bug"` 5. **git push**:推送本地提交到远程仓库。 - 语法:`git push <remote> <branch>` - 选项:`-u` 设置上游分支(首次推送用) - 示例:`git push -u origin master` 后续只需 `git push`。 6. **git pull**:拉取远程更新并合并到本地。 - 语法:`git pull <remote> <branch>` - 选项:无 - 示例:`git pull origin main` 7. **git status**:查看仓库当前状态。 - 语法:`git status` - 选项:`-s` 简洁输出(如 `M file.txt` 表示修改) - 示例:运行 `git status -s` 快速查看变更。 8. **git log**:查看提交历史。 - 语法:`git log` - 选项:`--oneline` 单行显示;`--graph` 可视化分支图 - 示例:`git log --oneline` 9. **git branch**:管理分支。 - 语法:`git branch` 查看分支;`git branch <name>` 创建分支 - 选项:`-d <branch>` 删除分支 - 示例:`git branch new-feature` 创建后 `git checkout new-feature` 切换。 10. **git merge**:合并分支。 - 语法:`git merge <branch>` - 选项:`--no-ff` 禁用快进合并(保留历史) - 示例:在目标分支运行 `git merge feature-branch`。 11. **git tag**:管理标签。 - 语法:`git tag` 列出标签;`git tag <name>` 创建标签 - 选项:`-d <tag>` 删除标签 - 示例:`git tag -a v2.0 -m "稳定版"` 12. **git reset**:回退提交。 - 语法:`git reset [--soft|--hard] <commit>` - 选项:`--soft` 保留更改;`--hard` 丢弃更改 - 示例:`git reset --hard HEAD~1` 回退到上一个提交。 **最佳实践提示**: - **频繁提交**:小步提交(`git commit`)保证历史清晰。 - **使用分支**:每个新功能创建分支隔离开发。 - **标签版本**:每次发布打标签,便于维护(引用[^1])。 - **解决冲突**:如果 `git pull` 或 `git merge` 报冲突,手动编辑文件后 `git add` 再提交(引用[^3])。 通过本教程,你将掌握Git的核心操作。Git的分布式设计让你拥有完整控制权,适用于个人项目到大型团队协作(引用[^2])。 --- ### 相关问题 根据本教程内容,生成以下相关问题,帮助你深入探索Git: 1. 如何解决Git合并分支时的冲突问题? 2. Git中如何回滚到特定的历史提交版本? 3. Git工作流的常见策略有哪些(例如Git Flow vs. GitHub Flow)? 4. 如何配置SSH密钥用于安Git远程操作? 5. Git高级功能如 `git stash` 和 `git rebase` 的使用场景是什么? [^1]: Git之分布式版本控制系统。 [^2]: 分布式版本控制系统 Git 简介与应用。 [^3]: Git 分布式版本控制系统入门教程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大犇犇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值