Git

一.git简介

Git是目前世界上最先进的分布式版本控制系统(没有之一)。

关于版本控制系统:

版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统.有了它你就可以将选定的文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态,你可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异问题出现的原因,又是谁在何时报告了某个功能缺陷等等

二.安装

在使用Git前我们需要先安装 Git。Git 目前支持 Linux/Unix、Solaris、Mac和 Windows 平台上运行。

Git 各平台安装包下载地址为:http://git-scm.com/downloads

Linux 平台上安装

Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具。

在有 yum 的系统上(比如 Fedora)或者有 apt-get 的系统上(比如 Debian 体系),可以用下面的命令安装:

各 Linux 系统可以使用其安装包管理工具(apt-get、yum 等)进行安装:

Debian/Ubuntu

Debian/Ubuntu Git 安装命令为:

$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \libz-dev libssl-dev$ apt-get install git$ git --version
git version 1.8.1.2

Centos/RedHat

如果你使用的系统是 Centos/RedHat 安装命令为:

$ yum install curl-devel expat-devel gettext-devel \openssl-devel zlib-devel$ yum -y install git-core$ git --version
git version 1.7.1

源码安装

我们也可以在官网下载源码包来安装,最新源码包下载地址:https://git-scm.com/download

安装指定系统的依赖包:

# Centos/RedHat
$ yum install curl-devel expat-devel gettext-devel \openssl-devel zlib-devel# Debian/Ubuntu
$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \libz-dev libssl-dev

解压安装下载的源码包:

$ tar -zxf git-1.7.2.2.tar.gz
$ cd git-1.7.2.2
$ make prefix=/usr/local all
$ sudo make prefix=/usr/local install

Windows 平台上安装

在 Windows 平台上安装 Git 同样轻松,有个叫做 msysGit 的项目提供了安装包,可以到 GitHub 的页面上下载 exe 安装文件并运行:

安装包下载地址:https://gitforwindows.org/

官网慢,可以用国内的镜像:https://npm.taobao.org/mirrors/git-for-windows/。

三.创建版本库

我们先来理解下 Git 工作区、暂存区和版本库概念:

  • **工作区:**就是你在电脑里能看到的目录。
  • **暂存区:**英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
  • 版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

1.创建一个目录作或者选择一个有内容的目录为工作区

2.使用当前目录作为Git仓库,我们只需使它初始化

git init

Git 使用 git init 命令来初始化一个 Git 仓库,Git 的很多命令都需要在 Git 的仓库中运行,所以 git init 是使用 Git 的第一个命令。

在执行完成 git init 命令后,Git 仓库会生成一个 .git 目录,该目录包含了资源的所有元数据,其他的项目目录保持不变。

补充:

使用指定目录作为Git仓库

git init newtest

初始化后,会在 newtest 目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。

3.把文件添加到版本库

这里我在工作区里添加一个文本文件作为演示:

一个文件放到Git仓库只要三步( 把大象当冰箱 ):

(1)把文件放到工作区或者新建文件,保证文件是在工作区目录下或子目录下

(2)用git add命令把文件添加到暂存区 : git add read.txt

(3)用git commit命令用把文件提交到仓库

git commit -m "第一次提交"  # -m后面输入的是本次提交的说明(message)

提交后发现和git add一样没有任何反应,在linux中没有反应是最好的反应

四.版本回退

git log命令:查看历史提交记录

假如说我修改read.txt文件,添加一行文字测试修改

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TiaPz2Ln-1632487562316)(https://i.loli.net/2021/09/24/huG1l6posUjIrdc.png)]

使用git log命令查看提交记录

如果提交次数很多,可以使用git log --pretty=oneline查看提交记录

说明:

提交记录里面那一大串字符``(20b123…)commit id`(版本号)

版本回退:

使用命令git reset回退版本:

说明:

在Git中,用HEAD表示当前版本,也就是最新的提交20b123....,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

git reset --hard HEAD^

打开之前添加的文字修改,发现回退到第一次提交的版本

用命令git log查看版本历史,我们如果想再回到最新版本(添加文字修改过的那个版本)怎么办:

git reset --hard 20b123

id没必要写全,前几位就可以了,Git会自动去找

问题来了,假如说,我关机了,或者关掉git了,ID不知道怎么办.在git中,总有后悔药可以吃:

使用命令git reflog查看命令历史

知道了id不是想怎么玩就怎么玩!

五.查看仓库当前的状态

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

我在工作区中再添加一个文件

使用命令:

git status

me.txt文件没有被添加,所以它的状态是Untracked

那现在来添加一下,再查看:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PnMzSfwj-1632487562326)(https://i.loli.net/2021/09/24/XoifkPWjz6OZ72A.png)]

提交后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的(working tree clean)

六.添加远程仓库–Github

首先你需要你个Github账户,再者你要创建一个仓库,注册账户就不说了,闭上眼注册就行了,我们来说一下创建仓库吧

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pXN7QFsB-1632487562327)(https://i.loli.net/2021/09/24/YGTurLsO3pfVRK4.png)]

接着确定就行了…

创建好的效果如图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6VjAiNlD-1632487562328)(https://i.loli.net/2021/09/24/93KwCvolH4qemRu.png)]

接着,我们从这里找到github仓库的地址

执行命令:

git remote add origin https://github.com/code-anime/test.git

添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的

下一步,就可以把本地库的所有内容推送到远程库上:

git push -u origin master

执行完毕后我们可以看到github上远程仓库内容和本地的内容一样.

注意:

执行途中可能遇到的问题:

(1)SSH错误

由于你的本地 Git 仓库和 GitHub 仓库之间的传输是通过SSH加密的,所以我们需要配置验证信息:

使用以下命令生成 SSH Key:

$ ssh-keygen -t rsa -C "youremail@example.com"

后面的 your_email@youremail.com 改为你在 Github 上注册的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。

成功的话会在 ~/ 下生成 .ssh 文件夹,进去,打开 id_rsa.pub,复制里面的 key

$ ssh-keygen -t rsa -C "2272166487@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/tianqixin/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):    # 直接回车
Enter same passphrase again:                   # 直接回车
Your identification has been saved in /Users/tianqixin/.ssh/id_rsa.
Your public key has been saved in /Users/tianqixin/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:MDKVidPTDXIQoJwoqUmI4LBAsg5XByBlrOEzkxrwARI 429240967@qq.com
The key's randomart image is:
+---[RSA 3072]----+
|E*+.+=**oo       |
|%Oo+oo=o. .      |
|%**.o.o.         |
|OO.  o o         |
|+o+     S        |
|.                |
|                 |
|                 |
|                 |
+----[SHA256]-----+

回到 github 上,进入 Account => Settings(账户配置)。

左边选择 SSH and GPG keys,然后点击 New SSH key 按钮,title 设置标题,可以随便填,粘贴在你电脑上生成的 key。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g8jbPVdT-1632487562333)(https://i.loli.net/2021/09/24/QGJrjOvehsnxfXo.jpg)]

添加成功后界面如下所示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HhMMUmuV-1632487562335)(https://i.loli.net/2021/09/24/MyavhetVYEXijbP.jpg)]

为了验证是否成功,输入以下命令:

$ ssh -T git@github.com
The authenticity of host 'github.com (52.74.223.119)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes                   # 输入 yes
Warning: Permanently added 'github.com,52.74.223.119' (RSA) to the list of known hosts.
Hi tianqixin! You've successfully authenticated, but GitHub does not provide shell access. # 成功信息

以下命令说明我们已成功连上 Github。

(2)下面这个错误

warning: redirecting to https://github.com/code-anime/test.git/
To http://github.com/code-anime/test.git! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'http://github.com/code-anime/test.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

解决:

执行命令:

git pull --rebase origin master

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cqOxvkkZ-1632487562336)(https://i.loli.net/2021/09/24/LknDerGX4qdI2ap.png)]

接着再试一下:

git push -u origin master

七.移除远程仓库

如果添加的时候地址写错了,或者就是想删除远程库,可以用git remote rm <name>

建议执行该命令之前执行git remote -v查看远程库信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hjpcpxS8-1632487562338)(C:/Users/22721/AppData/Roaming/Typora/typora-user-images/image-20210924154708648.png)]

然后根据名字删除,比如删除origin

此处的“删除”其实是解除了本地和远程的绑定关系,并不是物理上删除了远程库。远程库本身并没有任何改动。要真正删除远程库,需要登录到GitHub,在后台页面找到删除按钮再删除。

查看.git目录下的config文件,发现原来的这条没有了:

[remote "origin"]url = https://github.com/code-anime/test.gitfetch = +refs/heads/*:refs/remotes/origin/*

如果想重新建立与远程库之间的连接:

git remote add origin git remote add origin https://github.com/code-anime/test.git
git add .
git commit -m "第三次提交"
git push -u origin master

八.从远程库克隆

上面所讲到的是先有本地库,后有远程库,如何关联远程库.

现在,我们来说先有远程库,再有本地库(从远程库克隆),这里我把本地test工作区删除,github上面的test仓库也删除了.从零开始演示.毕竟是test

接着就是创建github仓库,这里不做赘述了.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0unGwbWx-1632487562343)(https://i.loli.net/2021/09/24/ylbKxJ2D7GuZsgH.png)]

我在桌面新建了一个文件夹repos,没别的意思就是repository的简写

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9PcOyMDr-1632487562345)(https://i.loli.net/2021/09/24/nR69k4NqUBSKLY8.png)]

然后打开文件夹 , 然后git bash here

执行命令:

git clone git@github.com:code-anime/test.git

上面git clone后跟的是仓库地址.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z6fhXXlZ-1632487562346)(https://i.loli.net/2021/09/24/tkf2KZvTiswxmJB.png)]

执行命令后,会发现repos目录里面多了一个test文件夹(就是克隆github上的test仓库)

打开test文件夹后我们会发现,和远程仓库内容是一样的

注意:

GitHub给出的地址不止一个,还可以用https://github.com/code-anime/test.git这样的地址。实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。

使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https

九.分支管理

首先,列出分支:

git branch

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aW1pUCbX-1632487562348)(https://i.loli.net/2021/09/24/lUL2XWNVJqO7Gju.png)]

意思就是,我们有一个叫做 master 的分支,并且该分支是当前分支.当你执行 git init 的时候,默认情况下 Git 就会为你创建 master 分支。

如果我们要手动创建一个分支。执行 git branch (branchname) 即可。

创建一个testing分支:

git branch testing

现在我们可以看到,有了一个新分支 testing

当你以此方式在上次提交更新之后创建了新分支,如果后来又有更新提交, 然后又切换到了 testing 分支,Git 将还原你的工作目录到你创建分支时候的样子。

我们切换到testing分支进行实验:

git checkout testing

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pYk3rs8J-1632487562350)(https://i.loli.net/2021/09/24/SRsQ38JOdnBPqjG.png)]

接下来我们将演示如何切换分支,我们用git checkout (branch) 切换到我们要修改的分支。

我们在testing分支上正常提交,比如创建文件readme.txt,内容写上:

测试testing分支

然后提交:

git add .
git commit -m "添加文字测试testing分支"

现在我们切换会master分支后,再查看readme.txt文件,文件不见了!

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2bArBHeG-1632487562353)(https://i.loli.net/2021/09/24/tpIsqRHXUASBk6E.png)]

当我们满怀怀疑的时候我们切换回来testing分支,发现还在

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hP1dK74J-1632487562353)(https://i.loli.net/2021/09/24/VaKfgYxIbQZwj8e.png)]

因为那个提交是在testing分支上,而master分支此刻的提交点并没有变:

现在,我们把testing分支的工作成果合并到master分支上:

git checkout master
git merge testing

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pv7swisu-1632487562355)(https://i.loli.net/2021/09/24/IWJSRxPGCOpfqjE.png)]

合并完成后,就可以放心地删除testing分支了:

git branch -d testing

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SW7dZNS2-1632487562357)(https://i.loli.net/2021/09/24/XUvorehsZ6pkFQf.png)]

十.合并冲突

合并并不仅仅是简单的文件添加、移除的操作,Git 也会合并修改。

git branch
* master
cat readme.txt
测试testing分支

现在我们只有一条主分支masterreadme.txt文件中只有测试testing分支这一段文字.

首先,我们创建一个test1分支, 切换过去,我们将readme.txt文件添加123三个数字

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h7oiMBbr-1632487562358)(https://i.loli.net/2021/09/24/WYxC2al8NEcJroe.png)]

将修改的内容提交到 change_site 分支中。 现在,假如切换回 master 分支我们可以看内容恢复到我们修改前的内容,没有123

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UCpdY3T3-1632487562359)(https://i.loli.net/2021/09/24/EsmQdOgFalr3PIx.png)]

我们再次修改readme.txt文件,添加数字456

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JgC2TQHu-1632487562360)(https://i.loli.net/2021/09/24/tkKfzLduywbamsQ.png)]

现在这些改变已经记录到我的 master分支了。接下来我们将 test1分支合并过来。

git merge test1
Auto-merging readme.txt
CONFLICT (content): Merge conflict in readme.txt
Automatic merge failed; fix conflicts and then commit the result.

打开文件,看见冲突内容

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V8r66FT9-1632487562361)(https://i.loli.net/2021/09/24/XQYtm57qlfAwaZM.png)]

我们将前一个分支合并到 master 分支,一个合并冲突就出现了,接下来我们需要手动去修改它。

Git用<<<<<<<=======>>>>>>>标记出不同分支的内容,我们修改如下后保存:

123456

再提交:

git add .
git commit -m "分支冲突解决"

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jzdhGvFv-1632487562362)(https://i.loli.net/2021/09/24/8ZKXpn4GNM925Ye.png)]

用带参数的git log也可以看到分支的合并情况:

git log --graph --pretty=oneline --abbrev-commit

最后,删除分支:

git branch -d test1

十一.标签管理

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

比如说,我们想为我们的 test项目发布一个1.0版本。 我们可以用 git tag V1.0命令给最新一次提交打上(HEAD)v1.0的标签。

首先,切换到需要打标签的分支上:

git tag v1.0

当你执行 git tag -a 命令时,Git 会打开你的编辑器,让你写一句标签注解,就像你给提交写注解一样。

可以用命令git tag查看所有标签:

git tag
v1.0

默认标签是打在最新提交的commit上的。有时候,如果忘了打标签,比如,本该在昨天打的tag没打怎么办?

方法是找到历史提交的commit id,然后打上就可以了:

git log --pretty=oneline --abbrev-commit

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZyfPJV7f-1632487562366)(https://i.loli.net/2021/09/24/LYaSbQeuRsirnCz.png)]

比方说要对添加456三个数组这次提交打标签,它对应的commit id是fe6c8d7,敲入命令:

git tag v0.9 fe6c8d7

再用命令git tag查看标签:

$ git tag
v0.9
v1.0

注意,标签不是按时间顺序列出,而是按字母排序的。可以用git show <tagname>查看标签信息:

git show v0.9

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-crS9GPc5-1632487562367)(https://i.loli.net/2021/09/24/NCEZIDVSQynKYOJ.png)]

可以看到,v0.9确实打在add 添加456三个数字这次提交上。

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

$ git tag -a v0.6 -m "version 0.6 released" 1094adb

用命令git show <tagname>可以看到说明文字:

git show v0.6

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yr3vuQPK-1632487562368)(https://i.loli.net/2021/09/24/GyxXfu7t9iow5gT.png)]

用命令git tag -d <tagname>删除标签

因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。

git tag -d v0.6

如果要推送某个标签到远程,使用命令git push origin <tagname>

git push origin v1.0

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZTfiDmiS-1632487562370)(https://i.loli.net/2021/09/24/mb6UOpI3hTjlGAM.png)]

或者,一次性推送全部尚未推送到远程的本地标签:

$ git push origin --tags

如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:

$ git tag -d v1.0

然后,从远程删除。删除命令也是push,但是格式如下:

$ git push origin :refs/tags/v1.0

要看看是否真的从远程库删除了标签,可以登陆GitHub查看。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0JlJFpQg-1632487562374)(https://i.loli.net/2021/09/24/MJ6AewT32zLoucq.png)]

十二.Gitee使用(hexo博客部署到gitee)

如果你-ssh密钥删除了或者不见了,新建一个ssh密钥

需要重新上传到github

打开你本地生成的ssh密钥(默认路径是C:\user\你的电脑用户名\ .ssh\id_rua_pub)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OWtmaGcT-1632487562375)(https://i.loli.net/2021/09/24/3Z4CmqWVQyRUXTb.png)]

放到github上:

第一次要密码,输入你创建ssh密钥时候的密码即可.

使用Gitee和使用GitHub类似,我们在Gitee上注册账号并登录后,需要先上传自己的SSH公钥。选择右上角用户头像 -> 菜单“修改资料”,然后选择“SSH公钥”,填写一个便于识别的标题,然后把用户主目录下的.ssh/id_rsa.pub文件的内容粘贴进去

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I6J6F2b8-1632487562380)(https://i.loli.net/2021/09/24/MSnVrQGkpTLDWm7.png)]

这里我来演示一下在gitee上搭建Hexo博客吧,顺便复习一下:

准备:

安装git,nodejs,npm

(1)首先,创建一个工作目录作为我们的博客目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WUhpbfOK-1632487562381)(https://i.loli.net/2021/09/24/o3b98kCDX6TpOB1.png)]

右键git bash here

hexo init

初始化hexo

(2)下载主题安装,这里以butterfly主题为例

在你的 Hexo 根目目录

git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly

修改 Hexo 根目录下的 _config.yml,把主題为butterfly

theme: butterfly

(3)安装插件

npm install hexo-renderer-pug hexo-renderer-stylus --save

在 hexo 的根目录创建一个文件_config.butterfly.yml,并把主题目录的 _config.yml内容复制到_config.butterfly.yml去。

注意: 不要把主題目录的_config.yml 刪掉

以后只需要在_config.butterfly.yml進行配置就行。

Hexo会自动合并主题中的_config.ymlconfig.butterfly.yml里的配置,如果存在同名配置,會使用config.butterfly.yml的配置,其优先度较高

然后执行:

hexo clean && hexo g && hexo s

在浏览器打开http://localhost:4000:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aOlXuyLx-1632487562385)(https://i.loli.net/2021/09/24/ewNSToGKgUhm9YH.png)]

能打开说明是好的

(4)部署到gitee

安装组件:

npm install hexo-deployer-git --save

然后:

hexo clean && hexo g && hexo d

最后出现下面那个图为正解.

(5)开启网页服务

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rO7saibc-1632487562387)(https://i.loli.net/2021/09/24/UavdtkPAQs8cTYM.png)]

直接点击生成即可,就会显示已开启 Gitee Pages 服务,网站地址: xxxxxx

至此,一个用户名.gitee.io的博客网站部署完成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wA1DCLrV-1632487562389)(https://i.loli.net/2021/09/24/PmjcKDyRpSnTYzX.png)]

Git使用手册--超级详细,自己都看哭了相关推荐

  1. 阿里云ecs建站 一键环境配置内容超级详细 大家都可以轻易上手

    终于将网站搭建完了,折腾了很久没有找到像我们这种小白的教程,那就写一篇吧! 一.购买域名和阿里云ecs 首先,我们需要购买ecs,选择了1核1G的入门版,地域可以选择离你比较近的:在这里我们CentO ...

  2. PAT乙级题解1003(超级详细分析,看完就懂)

    题目描述: 题意简化: 给定一个字符串和一些判定规则,判断该字符串是否正确 思路分析(解读规则): ① 字符串中只能含有P , A , T这三种字符 ②形如PAT , APATA , AAPATAA ...

  3. 微信提现——企业付款到零钱demo(超详细小白都看得懂的)

    一.p12证书下载 企业付款到零钱API (建议多看) apiclient_cert.p12证书:在微信商户平台–>账户设置–>API安全–>证书中下载的 . (自行下载) 二.开发 ...

  4. PAT乙级题解1005(超级详细分析,看完就懂)

    题目描述: 题意简化: 覆盖的定义:将n按照卡拉兹猜想去递推,递推过程的数就是被n覆盖的数 给定一个序列,找出序列中那些没有被序列其他数字覆盖过的数,从大到小输出 思路分析: 对于序列中的每个数,按照 ...

  5. PAT乙级题解1009(超级详细分析,看完就懂)

    题目描述: 题意简化: 将一句话中的单词倒序输出 思路分析: 用vector存放一句话中的每个单词,再倒序输出即可 要用到while(cin >> str),表示每次输入一个string类 ...

  6. 【python】 字典使用教程(超级详细)不看 你怎么够别人卷

    文章目录

  7. PAT乙级题解1006(超级详细分析,看完就懂)

    题目描述: 题意简化: 对于一个三位正整数x1x2x3x_1x_2x_3x1​x2​x3​(x1x_1x1​表示百位数字,以此类推),输出x1x_1x1​个B,输出x2x_2x2​个S,再输出12-x ...

  8. PAT乙级题解1008(超级详细分析,看完就懂)

    题目描述: 题意简化: 将数组的后m(m <= n)个元素移到数组(下标从0开始)前面 思路分析: 可以从输出角度入手,不需要真正移动元素,分类讨论: ①如果m >= n,例如m = 10 ...

  9. android studio 7200u,超惊艳的设计!微软正式将Surface Studio和Surface Laptop带进中国:设计师们都看哭了...

    昨晚,微软在上海召开了一场发布会.正式将之前已经发布的Surface Studio和Surface Laptop带入了中国市场,并且还在中国首发了第五代的Surface Pro. 话不多说,先来看下此 ...

最新文章

  1. 吴恩达机器学习入门 2018 高清视频公开,还有习题解答和课程拓展,网友:找不到理由不学!...
  2. 彻底吃透Web服务器、容器、应用程序服务器与反向代理
  3. 2021年下信息系统项目管理师真题各章节占分比
  4. TObject简要说明-对象的创建流程
  5. bufferedreader接收不到数据_PS4、Xbox手柄和Switch跨次元组队?全靠八位堂USB无线接收器...
  6. yum配置中driver-class-name: com.mysql.jdbc.Driver报错
  7. python list保存至csv文件
  8. 互联网大厂、架构设计、稳定性、高可用、必备知识点技能,进大厂必备!!快来瞧瞧吧
  9. 协和医院等发起成立中国医学装备人工智能联盟
  10. Python爬虫编程实践 Task03
  11. 360n5s不打印日志 不同厂商手机系统日志抓取方法
  12. 广州外贸童装批发市场
  13. 基于 Python 的高考志愿高校及专业分析系统
  14. 【CAD】【个人习惯】十字光标大小和自定义右键单击
  15. 一个研究生导师的肺腑直言
  16. [USACO08DEC]在农场万圣节Trick or Treat on the Farm【Tarja缩点+dfs】
  17. ios设备home键 锁屏键区分
  18. 项目记录——为沙特客户Android开发Google地图应用
  19. BOM操作(浏览器对象模型)
  20. 使用mac制作linux启动盘

热门文章

  1. ::在sql语句中是什么写法_不懂就问:SQL 语句中 where 条件后 写上1=1 是什么意思...
  2. 南京理工大学计算机学院教师信息网,南京理工大学教师信息
  3. 三层加过的注释java_spring框架中三层架构相关的注解
  4. Win10 Linux GPT分区方案,win10+Ubuntu 20.04 LTS双系统安装(UEFI + GPT)(图文,多图预警)
  5. telnet服务下载 Linux,linux telnet服务安装包
  6. html 360不识别,html 为什么在ie里显示正常在360浏览器不正常呢?
  7. xbox360无线手柄接收器驱动_八位堂USB 无线接收器让手柄不闲置,无线畅玩各平台游戏...
  8. 单点登录 cas 设置回调地址_单点登录落地实现技术有哪些,有哪些流行的登录方案搭配?...
  9. oracle undo段的作用,Oracle数据库中Undo数据段的作用及类型
  10. 陌陌怎么发起群活动 陌陌群组发起群活动教程