Spring Cloud Config复习-Git

Spring Cloud Config复习-Git

前言:

配置文件是我们再熟悉不过的,在微服务系统中,每个微服务不仅仅只有代码,还需要连接其他资源,例如数据库的配置或功能性的开关 MySQL、Redis 、Security 等相关的配置。除了项目运行的基础配置之外,还有一些配置是与我们业务有关系的,比如说七牛存储、短信和邮件相关,或者一些业务上的开关。

随着微服务系统的不断迭代,整个微服务系统可能会成为一个网状结构,这个时候就要考虑整个微服务系统的扩展性、伸缩性、耦合性等等。其中一个很重要的环节就是配置管理的问题。

由于常规配置管理有很大的缺点,所以采用Spring Cloud Config 集中式的配置中心来管理每个服务的配置信息

 

Git使用教程

Git使用教程 - 龙恩0707 - 博客园 (cnblogs.com)

 

一: Git是什么?

Git是目前世界上最先进的分布式版本控制系统

 

二: SVN与Git的最主要的区别?

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。(对容灾不太有保障)

SVC不安全:^一旦服务器天灾人祸电脑进水了,不能保证你代码的安全。

Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

Git分布式系统,可以防止容灾,达到高可用的效果因为^看加粗--》缺点:占空间

 

三:在windows上如何安装Git?

msysgit是 windows版的Git,如下:

image-20220805132252997

会弹出一个类似的命令窗口的东西,就说明Git安装成功。如下:

img

 

安装完成后,还需要最后一步设置,在命令行输入如下:

image-20220805132426973

因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。

image-20220805132445694

 

注意:git config --global 参数,有了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱。

 

四:如何操作

这个裴老飞就不看文档了,直接码云注册一个

登进去之后1.

image-20220805133413015

image-20220805134039196

 

4.1 克隆git

图床用不了了,截图就少点

image-20220806171631365

 

用SSH复制,桌面右击Git Bash Here,敲命令行

 git clone git@gitee.com:giteeCangku/java3-repository.git

用ssh克隆下来把本地仓库从git上克隆下来,到时候直接git push 就可以直接同步

 

指令克隆到桌面后,生成SSH公钥

公钥生成及设置:

https://gitee.com/help/articles/4181#article-header0

 

4.2 生成/添加SSH公钥

Gitee 提供了基于SSH协议的Git服务,在使用SSH协议访问仓库之前,需要先配置好账户/仓库的SSH公钥。

你可以按如下命令来生成 sshkey:

 ssh-keygen -t ed25519 -C "a15637633207@163.com"
 Generating public/private ed25519 key pair.

三次回车

 三次回车
 Enter file in which to save the key (/c/Users/86156/.ssh/id_ed25519):
 /c/Users/86156/.ssh/id_ed25519 already exists.
 Overwrite (y/n)? y
 Enter passphrase (empty for no passphrase):
 Enter same passphrase again:
 Your identification has been saved in /c/Users/86156/.ssh/id_ed25519
 Your public key has been saved in /c/Users/86156/.ssh/id_ed25519.pub
 The key fingerprint is:
 SHA256:gApiDLXDfdC/OkTP5i+8OAOrMJ83J9ReJRvPTp+m+LA a15637633207@163.com
 The key's randomart image is:
 +--[ED25519 256]--+
 |... ..           |
 |o. o o.          |
 |oo+ o o.         |
 |o. o ...+ .      |
 | .  o oSO       |
 |    o o B +      |
 |o . = *.o . .   |
 | + .= B.++. +    |
 |  +o +.+E=+o     |
 +----[SHA256]-----+

查看公钥:

 $ cat ~/.ssh/id_ed25519.pub
 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ1lDqcJsDnfO+1uOttAi5WU8+aKbFHNOxhiYuZaDUjo a15637633207@163.com

把公钥复制到Gitee上的ssh公钥,标题会自动填写。(复制生成后的 ssh key,通过仓库主页 「管理」->「部署公钥管理」->「添加部署公钥」 ,添加生成的 public key 添加到仓库中。)

 

克隆完可以熟悉一下git常用指令

git config --global user.name 用户名

git config --global user.email 邮箱

git config --list 列表显示

//自动补全代码 tab键

cd 转路径

git clone (网址) 克隆

 ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"  生成sshkey

$ cd ~/.ssh 进入.ssh目录

ll 查看所有内容

 $ cat ~/.ssh/id_ed25519.pub 查看钥匙串

rm -rf空格+名称 删除东西

git status 查看当前版本库的状态:

 git add 文件名 (作用添加到暂存区)
 git status (查看状态)
 git commit -m "......" (提交 ""里面是你写的注释)
 git diff 文件名 (查看文件修改内容)
 git log --pretty=oneline (查询修改历史记录)
 git reset --hard HEAD^ (回退到上个版本)
 git reflog (查看版本号)
 git reset --hard 版本号 (回到目标版本)
 rm 文件名 (删除文件)
 git checkout -- 文件名 (恢复没有被commit删除的文件)
 git checkout -b dev (创建并切换分支dev ,dev是分支名可以改的)
 git branch (查看当前的分支)
 git checkout master (切换分支master)(注意有没有--很重要)
 git merge dev (在当前分支上合并dev分支内容)(dev分支名可以替换)
 git branch -d dev (删除dev分支)
 git push (同步到gitee仓库)

上面的命令告诉我们 readme.txt文件已被修改,但是未被提交的修改。

接下来我想看下readme.txt文件到底改了什么内容,如何查看呢?可以使用如下命令:

git diff readme.txt 如下:

2版本回退

如上,我们已经学会了修改文件,现在我继续对readme.txt文件进行修改,再增加一行

内容为33333333333333.

  git add 1.txt
  git status
  git commit -m "1.txt新增3333333"

现在我已经对readme.txt文件做了三次修改了,那么我现在想查看下历史记录,如何查呢?我们现在可以使用命令 git log

 git log
 commit 084da59716429f6172e1ffd46372331b65c3231b (HEAD -> master)
 Author: weileta <a15637633207@163.com>
 Date:   Sat Aug 6 23:40:23 2022 +0800
 
     1.txt新增3333333
 
 commit 6b6cc13e6df13e19a6367342151c0861f27e5f4a
 Author: weileta <a15637633207@163.com>
 Date:   Sat Aug 6 23:34:10 2022 +0800
 
     新增22222222
 
 commit 3bd20a0d53981a12d575781203c1be836b0e6cc1
 Author: weileta <a15637633207@163.com>
 Date:   Sat Aug 6 23:22:39 2022 +0800
 
     新增111111111
 
 commit 85a8666f9b5bfbac9a6bdca779ca696c554fa91e
 Author: weileta <a15637633207@163.com>
 Date:   Sat Aug 6 23:21:26 2022 +0800
 
     新增1.txt

可以看出来,显示太长了,不方便看(尽量别用容易退不出来,用下边的就好-整洁)

git log命令显示从最近到最远的显示日志,我们可以看到最近三次提交,最近的一次是,增加内容为333333.上一次是添加内容222222,第一次默认是 111111.如果嫌上面显示的信息太多的话,我们可以使用命令 git log –-pretty=oneline 演示如下:

 git log --pretty=oneline
 084da59716429f6172e1ffd46372331b65c3231b (HEAD -> master) 1.txt新增3333333
 6b6cc13e6df13e19a6367342151c0861f27e5f4a 新增22222222
 3bd20a0d53981a12d575781203c1be836b0e6cc1 新增111111111
 85a8666f9b5bfbac9a6bdca779ca696c554fa91e 新增1.txt
 c7658db6d96880e50cc38a419b340e1b27aee8e9 (origin/master, origin/HEAD) Initial commit

一行解决

 

现在我想使用版本回退操作,我想把当前的版本回退到上一个版本,要使用什么命令呢?可以使用如下2种命令,第一种是:git reset --hard HEAD^ 那么如果要回退到上上个版本只需把HEAD^ 改成 HEAD^^ 以此类推。那如果要回退到前100个版本的话,使用上面的方法肯定不方便,我们可以使用下面的简便命令操作:git reset --hard HEAD~100 即可。未回退之前的1.txt内容如下

11111111

22222222

33333333 我想让他回退到1111122222,两种方式

git reset --hard HEAD^
git reset  --hard HEAD~100 (回退到前100个版本)

用第一个后已经没有33333了,说明回退成功了,但是现在我想回退到最新的版本,如:有333333的内容要如何恢复呢?我们可以通过版本号回退,使用命令方法如下:

git reset --hard 版本号 ,但是现在的问题假如我已经关掉过一次命令行或者333内容的版本号我并不知道呢?要如何知道增加3333内容的版本号呢?可以通过如下命令即可获取到版本号:git reflog 演示如下:(第一行就是命令)

git reflog
6b6cc13 (HEAD -> master) HEAD@{0}: reset: moving to HEAD^
084da59 HEAD@{1}: commit: 1.txt新增3333333
6b6cc13 (HEAD -> master) HEAD@{2}: commit: 新增22222222
3bd20a0 HEAD@{3}: commit: 新增111111111
85a8666 HEAD@{4}: commit: 新增1.txt
c7658db (origin/master, origin/HEAD) HEAD@{5}: clone: from gitee.com:giteeCangku/java3-repository.git

6位就是版本号!(恢复到33333的版本)

git reset --hard 084da59
HEAD is now at 084da59 1.txt鏂板3333333

86156@DESKTOP-QN7UOE7 MINGW64 ~/Desktop/java3-repository (master)
$ cat 1.txt
11111111111
22222222222
33333333333

 

3理解工作区与暂存区的区别

工作区:就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。

版本库(Repository):工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。

我们前面说过使用Git提交文件到版本库有两步:

第一步:是使用 git add 把文件添加进去,实际上就是把文件添加到暂存区。

第二步:使用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支上。

4Git撤销修改和删除文件操作

4.1 撤销修改

比如我现在在1.txt文件里面增加一行 内容为555555555555,我们先通过命令查看如下:

cat 1.txt
11111111111
22222222222
33333333333
55555555555

在我未提交之前,我发现添加5555555555555内容有误,所以我得马上恢复以前的版本,现在我可以有如下几种方法可以做修改:

第一:如果我知道要删掉那些内容的话,直接手动更改去掉那些需要的文件,然后add添加到暂存区,最后commit掉。

第二:我可以按以前的方法直接恢复到上一个版本。使用 git reset --hard HEAD^

但是现在我不想使用上面的2种方法,我想直接想使用撤销命令该如何操作呢?首先在做撤销之前,我们可以先用 git status 查看下当前的状态。如下所示:

git status 可以发现,Git会告诉你,git checkout -- file 可以丢弃工作区的修改,如下命令:git checkout -- 1.txt(空格记得)

git checkout -- 1.txt

86156@DESKTOP-QN7UOE7 MINGW64 ~/Desktop/java3-repository (master)
$ cat 1.txt
11111111111
22222222222
33333333333 (内容5555555没有了)

命令 git checkout -- 1.txt 意思就是,把1.txt文件在工作区做的修改全部撤销

  • 1.txt自动修改后,还没有放到暂存区,使用 撤销修改就回到和版本库一模一样的状态。

  • 另外一种是1.txt已经放入暂存区了,接着又作了修改,撤销修改就回到添加暂存区后的状态。

添加到暂存区的,不会被撤销,没添加的会被撤销

注意:命令git checkout -- readme.txt 中的 -- 很重要,如果没有 -- 的话,那么命令变成创建分支了。

 

4.2 删除文件

先创建

git add b.txt
git commit -m "创建了b.txt"
rm b.txt
git status
    
On branch master
Your branch is ahead of 'origin/master' by 5 commits.
  (use "git push" to publish your local commits)

Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        deleted:    b.txt

no changes added to commit (use "git add" and/or "git commit -a")

如上:一般情况下,可以直接在文件目录中把文件删了,或者使用如上rm命令:rm b.txt ,如果我想彻底从版本库中删掉了此文件的话,可以再执行commit命令 提交掉,现在目录是这样的, 不显示b.txt的

只要没有commit之前,如果我想在版本库中恢复此文件如何操作呢?

可以使用如下命令 git checkout -- b.txt,如下所示:

git checkout -- b.txt
    b.txt回来了

 

彻底删除b.txt

git rm b.txt

    git status
On branch master
Your branch is ahead of 'origin/master' by 5 commits.
  (use "git push" to publish your local commits)

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        deleted:    b.txt

git commit -m "删除b.txt" (两个命令就删干净了)

再用上边的命令恢复也不好使,因为commit了,已经找不到了哈哈哈

 

5远程仓库

我们是直接gitee上克隆到本地的,所以不用弄乱七八糟的一大堆,只用 git push就能把本地仓库的东西同步到gitee仓库上了

 

6创建与合并分支

在 版本回填退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。

首先,我们来创建dev分支,然后切换到dev分支上。如下操作:

git checkout -b dev
    
Switched to a new branch 'dev'

86156@DESKTOP-QN7UOE7 MINGW64 ~/Desktop/java3-repository (dev)
$ git branch
    
* dev
  master

git checkout 命令加上 –b参数表示创建并切换,相当于如下2条命令

git branch dev

git checkout dev

git branch查看分支,会列出所有的分支,当前分支前面会添加一个星号。然后我们在dev分支上继续做demo,比如我们现在在1.txt再增加一行 7777777777777

首先我们先来查看下1.txt内容,接着添加内容77777777,如下:

86156@DESKTOP-QN7UOE7 MINGW64 ~/Desktop/java3-repository (dev)
$ cat 1.txt   dev分支上未添加内容之前
11111111111
22222222222
33333333333

添加内容之后

cat 1.txt 11111111111 22222222222 33333333333 77777777777

git add 1.txt

86156@DESKTOP-QN7UOE7 MINGW64 ~/Desktop/java3-repository (dev)
$ git status
On branch dev
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   1.txt  绿色的暂存区
            
git commit -m "1.txt 新增777777"
[dev 8518937] 1.txt 鏂板777777
 1 file changed, 2 insertions(+), 1 deletion(-)

现在dev分支工作已完成,现在我们切换到主分支master上,继续查看readme.txt内容如下:

git checkout master (切换分支master)
cat 1.txt
11111111111
22222222222
33333333333 (77777777不见了,因为不是分支dev)

现在我们可以把dev分支上的内容合并到分支master上了,可以在master分支上,使用如下命令 git merge dev 如下所示:

git merge dev (在master分支上合并dev分支内容)
Updating 211d886..8518937
Fast-forward
 1.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

86156@DESKTOP-QN7UOE7 MINGW64 ~/Desktop/java3-repository (master)
$ cat 1.txt (查看)
11111111111
22222222222
33333333333
77777777777

git merge命令用于合并指定分支到当前分支上,合并后,再查看readme.txt内容,可以看到,和dev分支最新提交的是完全一样的。

注意到上面的Fast-forward信息,Git告诉我们,这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。

合并完成后,我们可以接着删除dev分支了,操作如下:

7(删除dev分支)

git branch -d dev 
Deleted branch dev (was 8518937).

86156@DESKTOP-QN7UOE7 MINGW64 ~/Desktop/java3-repository (master)
$ git branch
* master

 

8最后一个命令,同步仓库:

从本地仓库同步到gitee仓库中git push

git push
Warning: Permanently added the ECDSA host key for IP address '212.64.63.215' to the list of known hosts.
Enumerating objects: 19, done.
Counting objects: 100% (19/19), done.
Delta compression using up to 12 threads
Compressing objects: 100% (13/13), done.
Writing objects: 100% (18/18), 1.40 KiB | 715.00 KiB/s, done.
Total 18 (delta 7), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.4]
To gitee.com:giteeCangku/java3-repository.git
   c7658db..8518937  master -> master
 
posted @ 2022-08-06 17:17  为了她  阅读(66)  评论(0编辑  收藏  举报