Git常用基础命令+常用场景

简介

   git是一个版本控制工具;都说花有重开时,人物在少年。git就是那朵花,可以重新来过。最直白的话就是你做了错事可以回溯到你做错事之前,让你重新做人。
在学习过程中如果你有任何问题可留言或联系我wx: zjdkingwx

初识git

git gitlab github三者的区别

  初学者一般都会产生误区,这三个是不是一个东西。答案是肯定不是,git是工具,gitlab 和github他们两个是仓库。你可以通过工具向仓库中存放东西。一般公司企业使用的是gitlab,个人使用github。

git 的安装

  1. 进入到git官网 选择你要下载的版本
    在这里插入图片描述
  2. 下载好的exe文件直接双击,一路下一步即可。
  3. 安装好我们可以通过win+r 进入到cmd命令行 输入git --version;如果可以看到版本号证明安装成功。

github 账户申请

说明:已经有账号的可以直接跳过,如果没有请点击这里我之前写的Git Hub账号申请博客

git 核心概念

git 工作区,缓存区,本地仓库,远程仓库

  • 工作区:顾名思义是你平时存放代码的地方
  • 暂存区:用于暂时存放你的改动
  • 本地仓库:就是安全存放数据的位置,这里面有你提交到所有版本的数据。
  • 远程仓库:托管代码的服务器(一般是gitlab、github、gitee),可以简单的认为是你项目组中的一台电脑用于远程数据交换。
    git 原理图
    在这里插入图片描述

git 的卸载

  你不光需要知道他怎么来的,还要知道他怎么没的。直接通过控制面板卸载就可以了;win+pause break打开控制。直接卸载即可(下载在安装的时候也是一路next);此处了解即可可以不去练习。

git 基础用法

创建git 仓库

进入到一个你想做为仓库的文件夹执行git init,细心的同学会发现在执行命令后多了一个.git 文件;windows小伙伴可以显示隐藏文件就可以看到。这个文件是git仓库的核心,一般不要乱动。

$ mkdir -pv crazyk/git-demo
$ cd crazyk/git-demo
$ git init
$ ls -a
.    ..   .git

提交文件到本地库

编写一个随意的文件,注意一定要和.git同一级目录下,随意在上边书写一些内容;(windows小伙伴建议不要使用自带的记事本,使用Notepad++或者EditPlus,防止乱码并且还有格式)

# vim 进入到编辑模式(**对于里边的命令都要使用英文输入法**) i 进入到编辑模式  esc退出编辑模式。 :wq保存
$ vim suiyi.txt
$ cat suiyi.txt
我爱中国!
# 将文件添加到暂存区。  如果想将所有的文件都添加到缓存区 git add . 即可
$ git add suiyi.txt
# 将暂存区的文件提交到本地仓库   
$ git commit -m  "我的第一次"

版本回退

我们对之前提交的文件就行修改,然后再次提交

# 还是随便修改一些东西 保存
$ vim suiyi.txt
# 查看里边内容从我爱中国!多了xx
$ cat suiyi.txt
我爱中国!xx
# 查看一下状态
$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   suiyi.txt

no changes added to commit (use "git add" and/or "git commit -a")
$ git add suiyi.txt
$ git commit -m "第一次修改"

要是能重来,我要做李白。 好给你机会
首先你要知道你要从哪个朝代重来吧。git log查看所有提交的记录
回退命令 git reset / git revert

$ git log
commit 95e5bdb840a382c3bb8b09d905a968be873e1ef5 (HEAD -> master)
Author: wangdakai <718379629@qq.com>
Date:   Thu Mar 18 10:51:45 2021 +0800

    我的第一次修改

commit 66f23006a667897917e02ba2c383fe07352e64a3
Author: wangdakai <718379629@qq.com>
Date:   Thu Mar 18 10:42:15 2021 +0800

    我的第一次   

以下将使用不同种类的回滚。
对于回滚我们需要对版本进行进一步的介绍。

  • HEAD 当前版本
  • HEAD ^ 前一个版本 ,HEAD^^ 前前一个版本 ;写多少个^就是前多少个版本,只要你写的过来。
  • HEAD~100 前100个版本
  • 可以直接通过git log获取到版本号。这个是相当方便的。推荐

git reset --soft 要回退到的版本号

$ git reset --soft 66f23006a667897917e02ba2c383fe07352e64a3
# 查看状态,发现modified:   suiyi.txt 发现文件被修改了;

$ git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	modified:   suiyi.txt
# 查看内容,和第二次提交前是一样的。	

$ cat suiyi.txt
我爱中国!xx
# 查看日志,发现只有一次提交,第二次提交没有了。

$ git log 
commit 66f23006a667897917e02ba2c383fe07352e64a3 (HEAD -> master)
Author: wangdakai <718379629@qq.com>
Date:   Thu Mar 18 10:42:15 2021 +0800

    我的第一次
(END)
# 这个时候可以重新编辑了。
$ vim suiyi.txt

$ cat suiyi.txt
我爱中国!我要做李白

$ git commit -m "soft 回滚提交";
[master ea36fd1] soft 回滚提交
 1 file changed, 1 insertion(+), 1 deletion(-)
 
$ git log
commit ea36fd1e0c649783a5f01b62b3b0ed18d2726755 (HEAD -> master)
Author: wangdakai <718379629@qq.com>
Date:   Thu Mar 18 13:59:46 2021 +0800

    soft 回滚提交

commit 66f23006a667897917e02ba2c383fe07352e64a3
Author: wangdakai <718379629@qq.com>
Date:   Thu Mar 18 10:42:15 2021 +0800

    我的第一次
(END)

综上可以看得出来,git reset --soft xxx 相当于撤销了了上次提交,并将结果退回暂存区。意思就是退回到xx版本,在xx版本之后的内容还在。最简单的理解就是撤销了git commit 那一步的动作。

git reset --hard 要回退到的版本号

$  git reset --hard 66f23006a667897917e02ba2c383fe07352e64a3
HEAD is now at 66f2300 我的第一次
$ cat suiyi.txt
我爱中国!
# 查看状态,发现没有更改过。
$ git status
On branch master
nothing to commit, working tree clean

$ vim suiyi.txt 
$ cat suiyi.txt
我爱中国! 我要在做李白
$ git add suiyi.txt

$ git commit -m "hard 回滚提交";

[master df9c531] hard 回滚提交
 1 file changed, 1 insertion(+), 1 deletion(-)
 
$ git log
commit df9c531eb339cc6b5d5760ba7740b861b14f408d (HEAD -> master)
Author: wangdakai <718379629@qq.com>
Date:   Thu Mar 18 14:14:26 2021 +0800

    hard 回滚提交

commit 66f23006a667897917e02ba2c383fe07352e64a3
Author: wangdakai <718379629@qq.com>
Date:   Thu Mar 18 10:42:15 2021 +0800

    我的第一次
(END)

综上,git reset --hard 会回到xxx版本。并且xx版本之后的全部删除。

git reset --mixed

git reset --mixed 66f23006a667897917e02ba2c383fe07352e64a3
Unstaged changes after reset:
M	suiyi.txt

# 查看状态,发现已经退回到了工作区。
$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   suiyi.txt
# git log确实已经回到了从前。
$ git log
commit 66f23006a667897917e02ba2c383fe07352e64a3 (HEAD -> master)
Author: wangdakai <718379629@qq.com>
Date:   Thu Mar 18 10:42:15 2021 +0800

    我的第一次
(END)
$ git add .

$ git commit -m "mixed 提交"

$ git log
commit ba6b40dbaeef63ec866469983d2d0427370540fc (HEAD -> master)
Author: wangdakai <718379629@qq.com>
Date:   Thu Mar 18 14:40:11 2021 +0800

    mixed 提交

commit 66f23006a667897917e02ba2c383fe07352e64a3
Author: wangdakai <718379629@qq.com>
Date:   Thu Mar 18 10:42:15 2021 +0800

    我的第一次
(END)

综上,git reset --mixed xx 回到了 版本,并且回到的是工作区。可以简单理解,他撤销的是git add 和git commit两个步骤

git revert

$ git revert HEAD
[master 7e47130] Revert "mixed 提交"
 1 file changed, 1 insertion(+), 1 deletion(-)
 
$ git log
commit 7e471300d42962d91d44d2bb56a86cdae2baad81 (HEAD -> master)
Author: wangdakai <718379629@qq.com>
Date:   Thu Mar 18 14:53:49 2021 +0800

    Revert "mixed 提交"

    This reverts commit ba6b40dbaeef63ec866469983d2d0427370540fc.

commit 4c1bb18526d73fb7988e4b094802a006ee51163e
Author: wangdakai <718379629@qq.com>
Date:   Thu Mar 18 14:52:42 2021 +0800

    mixed 提交

commit 66f23006a667897917e02ba2c383fe07352e64a3
Author: wangdakai <718379629@qq.com>
Date:   Thu Mar 18 10:42:15 2021 +0800

    我的第一次
(END)

git revert 会回退到之前版本;形成一次新的提交。

总结

  • git reset
    git reset --soft xxx 相当于撤销了git commit 这一步,xx版本后的修改的内容还在,在暂存区。
    git reset --mixed xxx 撤销了git add 和git commit 这两部,xx版本后修改的内容还在,在工作区。
    git reset --hard xxx 将版本回滚到xxx ,xxx版本之后的内容全部删除。
  • git revert 用一次新的提交来回滚之前的提交
    推荐使用git revert,因git reset不会保留回滚之前的记录,但是revert会。
    A->B->C->D git revert D 就会变成 A->B->C->D->rD
    A->B->C->D git reset --hard C 就会变成A->B->C

远程仓库

创建远程仓库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

远程仓库创建成功

推送本地代码到远程仓库

$ git init
Initialized empty Git repository in /Users/mlamp/crazyk/gittest/.git/

$ vim suiyi.txt
$ cat suiyi.txt
我爱中国

$ git commit -m "我的第一次"
[master (root-commit) 9dbef9a] 我的第一次
 1 file changed, 1 insertion(+)
 create mode 100644 suiyi.txt
 
# 和远方建立链接
$ git remote add origin https://github.com/crazy-dking/gittest.git

# 只有第一次提交的时候是需要这样,后续提交git push 就行
$ git push -u origin master
Username for 'https://github.com': code_dking@163.com
Password for 'https://code_dking@163.com@github.com':
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 239 bytes | 239.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/crazy-dking/gittest.git
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

从远程仓库拉去代码
远程拉去
复制链接回到本地随便找一个文件夹就行(虽然说了这么多随便,但是作为开发人员希望你的工程在开的时候目录条里清晰)
执行git clone

$ git clone https://github.com/crazy-dking/myairline.git
Cloning into 'myairline'...
remote: Enumerating objects: 33, done.
remote: Counting objects: 100% (33/33), done.
remote: Compressing objects: 100% (24/24), done.
remote: Total 33 (delta 9), reused 26 (delta 6), pack-reused 0
Unpacking objects: 100% (33/33), done.

将拉下来的项目修改后上传

因为这个项目是测试demo,只有你一个人,不会有冲突,在多人合作的时候一定先拉去,在提交。这样有冲突可以提前处理。

$ git pull 
$ git commit -m ""
$ git push 

删除远程库

有些时候我们可能添加错地址了,需要删除
1.先git remote -v 查看一下远程库信息
2.根据名字删除信息 git remote rm origin

$ git remote -v
origin	https://github.com/crazy-dking/gittest.git (fetch)
origin	https://github.com/crazy-dking/gittest.git (push)

$ git remote rm origin

分支

创建、合并分支

我们之前的操作都是在master分支进行的。
接下来我们学习创建分支

# 创建dev
$ git branch dev 
# 切换到dev  其实创建和切换可以使用一条命令,git checkout -b dev
$ git checkout dev
# 查看分支列表 *表示单签所以在分支
$ git branch 
* dev
  master
(END)

合并分支
合并分支就是以A分支基础,将另外一个B分支合到他上边。这样A分支就就有B分支的功能。
我们创建一个新的feature分支并在上边创建一个文件,然后将feature合并到dev 分支。
切换分支也可以使用git switch 分支; 看个人习惯。
想要合并到那个分支上,你就先到那个分支上

$ git checkout -b feature
Switched to a new branch 'feature'
#创建一个新文件
$ touch feature.txt
$  ls
feature.txt suiyi.txt
$ git add .
$ git commit -m "feature.txt"
[feature 5c9bfdd] feature.txt
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 feature.txt
 
# 切换到dev 分支,ls查看,并看不到feature.txt

$  git checkout dev
Switched to branch 'dev'

$ ls
suiyi.txt
## 开始合并
$ git merge feature
Updating 9dbef9a..5c9bfdd
Fast-forward
 feature.txt | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 feature.txt

$ ls
feature.txt suiyi.txt

删除分支

git branch -d 分支名称

$ git branch -d feature
Deleted branch feature (was 5c9bfdd).

rebase

他的作用主要是解决分之多,看起来杂乱的
rebase操作可以把本地未push的分叉提交历史整理成直线;
小王我是没怎使用过,但是之前面试被问到过。

冲突解决

冲突的产生,同一个文件的被多个人动了。
讲真,一般不会有人在你的控制台进行解决冲突,真心看着太恶心了。
为了模拟,我们我们自己制造一个冲突。然后去解决。

$ vim suiyi.txt
$ cat suiyi.txt
我爱中!国
$ git add .
$ git commit -m "dev 改动"

$ git switch master
Switched to branch 'master'
$ vim suiyi.txt
$ cat suiyi.txt
我爱中
国

# 此时合并分支
$ git merge dev
Updating 9dbef9a..47d3512
error: Your local changes to the following files would be overwritten by merge:
	suiyi.txt
Please commit your changes or stash them before you merge.
Aborting
# fack 我忘记提交了,错误意思是你要不先提交,要不将改变stash起来;这个stash 后边在说
$ git add .
$ git commit -m "master 改动"
[master b578303] master 改动
 1 file changed, 2 insertions(+), 1 deletion(-)
 
# 再次合并
$ git merge dev
Auto-merging suiyi.txt
CONFLICT (content): Merge conflict in suiyi.txt
Automatic merge failed; fix conflicts and then commit the result.
# 上边说suiyi.txt出现了冲突,那么我们查看这个文件,
# <<<<<HEAD 到 ==== 之间是HEAD 分支。  下边是dev 分支;这是时候就保留什么了。
$ vim suiyi.txt
<<<<<<< HEAD
我爱中
国
=======
我爱中!>>>>>>> dev
# 我们只要master上边的,那么我们删除无用内容。保存再次提交就可以了
$ git add .
$ git commit -m "conflict fixed"
[master 9f60bbf] conflict fixed

到此修复成功。

标签

git 打tag非常简单,但是为什么要打tag?
Git 可以给仓库历史中的某一个提交打上标签,以示重要。 比较有代表性的是人们会使用这个功能来标记发布结点( v1.0 、 v2.0 等等)

创建 查询 删除标签

## 大标签
$ git tag v1.0

## 查看标签
$ git tag
v1.0
(END)
$ git show v1.0
commit 9f60bbfa2202bbc80521132f988f539c51f1a83c (HEAD -> master, tag: v1.0)
Merge: b578303 47d3512
Author: wangdakai <718379629@qq.com>
Date:   Thu Mar 18 18:47:41 2021 +0800

    conflict fixed
## 删除标签
$ git tag -d v1.0
Deleted tag 'v1.0' (was 9f60bbf)

常用场景

删除GitHub中的仓库

project内部的setting–>一直向下滑 delete this repository
在这里插入图片描述
在这里插入图片描述

GitHub私有仓库多人合作开发

小王和小李合作开发项目,小李创建了一个git hub上边的私人仓库,这个时候给了链接让小王下载,小王是么办法去clone代码的。
需要小李向小王发起邀请,然后小王接收邀请,这个时候小王和小李才可以在一起 开发
具体如下:

1.首先小李创建了私人仓库
git 首页–>new --> create repository

在这里插入图片描述
2.小王这个时候拿着小李的地址,进行本地clone

$ git clone https://github.com/crazy-dking/pirvategit.git
Cloning into 'pirvategit'...
Username for 'https://github.com': 718379629@qq.com
Password for 'https://718379629@qq.com@github.com':
remote: Repository not found.
fatal: repository 'https://github.com/crazy-dking/pirvategit.git/' not found

3.小王发现下载不下来,然后查资料,发现需要小李邀请,他才可以进行协同开发。接下来小李邀请

在这里插入图片描述

4.小王进入到自己的邮箱,统一邀请,从此两个人在一起了

在这里插入图片描述

GitHub 条件搜索

内容 language:java stars:>200
搜索 java 语言的 收藏大于200 的项目;这样可以更加有助于我们筛选项目。
在这里插入图片描述

GitHub卡的一比如果解决

1、修改本地hosts文件
  windows系统的hosts文件的位置如下:C:\Windows\System32\drivers\etc\hosts
  mac/linux系统的hosts文件的位置如下:vim /etc/hosts
2、获取Github相关网站的ip
  访问https://www.ipaddress.com,直接搜索”
  分别输入github.global.ssl.fastly.net和github.com,查询ip地址
  下面是我的配置
  140.82.114.3 github.com
  199.232.5.194 github.global.ssl.fastly.net

最根本的方法:科学上网。

开发中途被打断,本地的不可提交,还要去其他分支工作

小王从此在自己的分支快乐的开发,突然有一天部门老大说你去另外的一个分支修复一下bug
小王心想我这现在还没开发完成,还不能提交,现在切过去就炸了。说不行部门老大的印象肯定大大折扣。该怎么办,怎么办。急的原地转圈圈。这个时候引入强大的 stash 和pop 命令

# 小王在dev 工作 假定他要去bug 分支去修改bug;
$ git checkout  dev
# 开始开发
$ vim feature.txt
$ git status
On branch dev
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   feature.txt
# 这个时候要去bug 分支进行修改bug;先说一下问题,如果我们直接切过去会带着我们的更改过去。
$ git checkout -b bug
M	feature.txt
Switched to a new branch 'bug'
# 看吧,我们的修改也被带过来
$ git status
On branch bug
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   feature.txt

# 所以我们此时需要先将我们的代码藏起来,等改完bug,在回来。释放存储
$  git checkout dev
$ git stash save
Saved working directory and index state WIP on dev: 47d3512 dev 改动
# 这个时候我们就发现已经将代码储藏起来了
$ git status
On branch dev
nothing to commit, working tree clean
# 当我们改完bug 回来只需要 既可以将最上边的释放。
$ git stash pop
On branch dev
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   feature.txt

no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0} (c66d332dde539c2716260eba7ce38f3952295b12)

使用他人账号进行检出代码

平静的日志总是短暂的,小王电脑坏了,公司临时给他配了一个临时的电脑,但是这个电脑上边已经有别人的git账号,小王想使用但是那个账号还没有小王要的权限;怎么办呢?重新卸载重装?不科学肯定有办法。

#可以直接使用一下命令进行切换账号,切换完成就可以检出了
#全局切换,针对于小王的情况很实用
$ git config --global user.name "小王"
$ git config --global user.email "XX@163.com"

# 局部切换
$ git config user.name "小王"
$ git config user.email "XX@163.com"

windows清除凭证

有时候我们在clone远程代码的时候,发现远程有这个仓库但是还是一直报错找不到仓库,那么多半是该电脑上git 凭证不对。

$ git clone https://github.com/zjdking/notes.git
Cloning into 'notes'...
remote: Repository not found.
fatal: repository 'https://github.com/zjdking/notes.git/' not found

解决方案:进入到控制面板–>用户账户–>凭据管理器–>windows凭据 删除git凭据,重新检出。

在你的分支合并他人的分支

一般的开发团队都会从开发分支检出来多条分支进行开发,我们以小王和小李各有一个分支为例,小王想用小李分支上的功能,但是小李功能没有开发完成,他的分支不能合并到开发分支上,那怎么办呢?小王自己在写一个份?得不偿失。

# 小王在feature上开发,小李在feature1上开发,只要小李将代码提交。小王就可拿到版本号。
$ git cherry-pick 版本号      

终端上切换git 账号

$ git config --system --unset credential.helper

常用命令

新建代码库

1.在当前目录新建一个Git代码库
   git init
2.新创建一个目录将它初始化为一个git代码库
   git init [project-name]
   project-name:你的项目名称
3.从远程仓库中下载代码
   git clone [url]
   url :指的是你要下载的代码库的url地址

配置

1.查看配置列表
   git config --list
2.查看当前用户
  git config user.name
3.设置局部提交代码的用户信息
  git config user.name “wangdakai”
  git config user.email “codk_dking@163.com”
4.设置全局提交代码的用户信息
  git config --global user.name "wangdakai“
  git config --global user.email “codk_dking@163.com”
他和局部的关键就是这个 --global

增文件

1.所有文件添加到暂存区
  git add .
2.将指定文件或者目录存放暂存区
  git add 文件/目录

提交代码

1.提交暂存区的代码到本地仓库
  git commit -m “提交的描述信息”

分支

1.查看分支列表
  git branch 显示所有本地分支
  git branch -r 显示所有远程分支
  git branch -a 显示所有分支
2.新创建分支
  git branch 分支名称(新建一个分支但是仍停留到当前分支)
  git checkout -b 分支名称(新建分支,并且切换到新分支)
3.切换到指定分支
  git checkout 分支名称
4.合并指定分支到当前分支 向合并到哪个分支上需要先切分到那个分支
  git merge 分支
5.选择一个提交合并到当前分支
  git cherry-pick 提交的版本号
5.删除指定分支
  git branch -d 分支名称

标签

1.列出所有tag
  git tag
2.新建一个tag在当前提交
  git tag [tag]
3.删除本地tag
  git tag -d [tag]
4.删除远程tag
  git push origin :refs/tags/[tagName]
5.查看tag信息
   git show [tag]
6.提交指定tag
  git push [remote] [tag]
7.提交所有tag
  git push [remote] --tags

查看信息

1.显示所有变更的文件
  git status
2.显示当前分支的历史版本
  git logs
3.显示指定文每次的diff
  git log -p [指定文件]
4.显示暂存区和工作区的不同
  git diff
5.显示工作区和当前最新一次提交之间的差异
  git diff HEAD

远程同步

1.获取远程仓库的变化,冰河本地合并
  git pull [remote] [branch]
2.上传本地仓库的内容到远程仓库
  git push [remote] [branch]
3.强行推送到远程仓库,即使有冲突
  git push [remote] --force

撤销

1.恢复暂存区的指定文件到工作区
  git checkout [file]
  git checkout . 恢复全部
2.重置
  git reset [file] 重置暂存区指定文件和上次提交保持一致,工作区不变
  git reset --hard 重置工作区于暂存区,和上次提交保持一致
3.暂是将未提交的变化移除,然后在移入
  git stash 将未提交的信息存放起来
  git stash pop 将存放起来的信息拿出来
4.新建一个提交,用来撤销指定提交;
  git revert [commit]

gitflow管理

分支类型,他们的作用。

  • master 主干分支
  • develop 开发分支
  • feature 功能分支
  • release 版本分支
  • hotfix 修改bug 分支

本来还想写一下git 和idea的结合使用。但是idea版本变化了,界面就变化了。所以只要把上上述思想掌握,可以不变应万变。不行根据思想就去查呗。其实不会去查询不可怕,可怕的是你不会还不知道怎么查,这才是最可怕的。

如果我的分享帮助到你,麻烦给个赞,给个关注。谢谢!下边是兵长公众号,欢迎大家前来捧场。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值