git config --global user.name "Your Name"
git config --global user.email "[email protected]"
配置完成后,可以通过以下命令确认这些信息:
git config --list
user.name=Your Name
[email protected]
2.2 初始化仓库
git 版本控制是控制 某一个文件夹 下的所有文件。
利用 VScode 打开想要控制的文件所在的文件夹, 左侧有个源代码管理的插件(没有的在VScode扩展中下载即可),打开后点击初始化仓库,完成对git 仓库的初始化。
初始化仓库介绍后,源代码管理插件变成如下图所示,git 会在该文件夹下创建 .git
的隐藏文件夹,用来存储 git 版本信息。
2.3 提交文件
- 点击+键,即可将文件追踪,暂存文件更改。
2. 暂存更改文件的状态,将从U (Untracked) 代表文件是是 未跟踪 的,变成 A (Added),代表文件是 新增 的,还未提交。
3. 在 消息栏 输入本次提交的注释,点击提交即完成文件的提交。必需要在消息栏填写内容才能提交,消息栏是用来描述你的代码变化的目的和内容的地方,方便进行浏览版本差异。
4. 若未在消息栏填写内容,就点击了提交按键,将会蹦出一个COMMIT_EDITMSG
文件,在文件第一行填写注释内容,保存并关闭,也可完成文件的提交。
VScode文件右侧字母含义:
- A:A是Added的缩写。表示这个文件是新增的,它在本地仓库中不存在,但是已经被添加到暂存区,等待提交。
- U:U是Untracked的缩写。表示这个文件是未跟踪的,它在本地仓库中不存在,也没有被添加到暂存区,需要你手动添加或忽略。
- M:M是Modified的缩写。表示这个文件是被修改的,它在本地仓库中存在,但是已经被修改。
- D:D是Deleted的缩写。表示这个文件是被删除的,它在本地仓库中存在,但是已经被删除。
- 1,M:表示这个文件有一个错误,后面的字母代表该文件的状态。
2.4 文件修改
当对已上传的文件进行修改过后,修改部分代码会左侧会有颜色提示,绿色表示这里是新加的代码,红色代表此处代码被删除,蓝色代表此处代码被修改。
- 源代码管理栏将文件的状态改为M(Modified),表示文件是被修改的。
2. 点击+号,在消息框输入版本信息,点击提交,即完成了文件的修改,该修改版本将会被 git 记录。
3. 点击顶端 view history
按钮,即可看见所有上传的版本(没有可以去扩展安装Git History
)。
4. 在Git History
界面可以看见所有历史版本信息,左侧有版本名称即为你添加的注释(可以相同)和上传时间,右侧有版本的hash码(不同),是版本的唯一标识符。
5. 点击版本,可以看到该版本相比上一版本进行了哪些操作。可以看到test7版本,相比于test6版本,添加了test_02.txt
、删除了text_03.h
,修改了test.c
。
* 点击 `view`,可以看到该版本的该文件的内容。
![image-20240202162520039](https://img-blog.csdnimg.cn/img_convert/7590b37ec1b4508e2c68b50d85dca1dd.png)
* 点击 `Workspace`,可以看到该版本与 **当前工作空间内容** 的对比。
![image-20240202162459794](https://img-blog.csdnimg.cn/img_convert/2bb6c899fd17fd69d93a97d93906e276.png)
* 点击 `Previous` ,可以看到该版本与 **上一版本文件内容** 的对比。
![image-20240202162440688](https://img-blog.csdnimg.cn/img_convert/6889e88fdf00a7582a4e6f45b930bac6.png)
* 点击 `History` ,可以看到该文件 所有被修改的历史版本。
![image-20240202162410265](https://img-blog.csdnimg.cn/img_convert/9904cd7de1ca3da36ac25d77f1c14c96.png)
2.5 版本对比
当点击右侧时间线,可以对比提交的版本与当前版本的区别。左侧为对比的版本,右侧为当前版本,红色为当前版本删除的部分,绿色为当前版本添加的部分。
2.6 版本回退
版本回退分为 硬回退(Hard reset) 和 软回退(Soft reset) 。它们的区别在于它们对工作区、暂存区和版本库的影响不同。
模式 | HEAD | 暂存区 | 工作区 |
---|---|---|---|
Soft | 移动到指定提交 | 不变 | 不变 |
Hard | 移动到指定提交 | 重置为指定提交 | 重置为指定提交 |
- 软回退(Soft reset)
软回退模式 只会移动HEAD指针,不会修改暂存区和工作区的内容,这意味着你可以 **撤销最近的提交并保留你的修改 **。
在Git History
页面中,点击要回退的版本的右侧的 Soft
按钮,进行版本回退。
提示框提示 “所有受影响的文件将被合并并保存在本地工作区中” ,选择 OK
,确定回退。
此时,版本回退到了你选择的版本,但是本地文件仍为回退前的版本。
2. 硬回退(Hard reset)
硬回退模式 会移动HEAD指针,并重置暂存区和工作区为指定提交的内容,这意味着你可以 **完全丢弃某个提交及其后续的所有修改 **。
在 Git History
页面中,点击要回退的版本的右侧的 Hard
按钮,进行版本回退。
提示框提示"这对您当前的工作集是不可逆的。未提交的本地文件将被删除",选择 OK
,确定回退。
此时,版本回退到你选择的版本,并且你的本地文件也回退到选择的版本。
硬回退不可逆,建议确定好要回退版本再使用。
2.7 版本分支
- 点击右侧
Branch
按钮,创建分支。
2. 在提升框中写分支的名字,点击 OK
,创建分支。
3. 创建完成后,看见右侧绿色 test6_1
,代表当前分组位置,main
代表主分支位置。
4. 点击新创建的 test6_1
分支,在弹出的提示窗选择 OK
切换到新的分支(前提是当前文件未做修改)。
也可以在 VScode 左下角进行分支转换,点击 main
,选择你要切换的分支,进行切换。
5. 顶部弹出弹窗,点击要切换的分支,进行分支切换。
6. 与在主分支提交相同,在其他分支也是再消息栏填写版本内容后提交。
7. 分支合并:
切换到主分支,点击 源代码管理 的右上角三个点,选择分支-合并。
在顶部选择你要合并的分支。
分支合并成功,文件会有冲突存在,此时需要对有冲突文件进行编辑。
合并更改有三种方式:
* 采用当前更改:保留你所在的分支的修改,忽略另一个分支的修改。
* 采用传入的更改:保留另一个分支的修改,忽略你所在的分支的修改。
* 保留双方更改:同时保留两个分支的修改,让你自己再次编辑文件,选择最终的修改。
2.8 版本合并
版本合并一直都是很困难的,需要一步一步来查看版本的区别,选择合适的合并方式。
- 可以在 合并编辑器 中查看 当前 文件内容、传入 文件内容,以及合并后的 结果 。
2. 往往我们需要看到最原始的版本,才能方便我们确定合并时,哪些是我们要的,哪些是不要的。在合并编辑器中,可以点击右上角的三个点,选择显示基顶部。
3. 此时,我们得到了 基础 版本,与之前三个版本同框的情况,方便确定合并内容。
可以选择 接受当前 ,接受传入,或者不做更改,最后选择完成合并。
4. 当你不想进行合并时,在顶部输入>Git: Abort Merge
,选择取消合并。
3 git 远程代码控制
上面介绍了 git 在本地的使用,下面介绍结合 github 的 git 的远程控制。
3.1 创建远程仓库
- 打开 github.com ,点击
Sign in
登陆你的账号,没有的话点击Sign up
注册一下即可。
- 登陆后,点击
New
新建一个项目,这个项目就是你上传本地项目的位置。
3. 填写仓库名称后,点击 Create repository
创建项目。
其中仓库名称是必须填写的,其他部分可以保持默认,其含义如下。
* `Repository name` : 仓库名称(输入名字,最好不要使用中文)
* `Description` (可选) : 仓库描述介绍,可以不填
* `Public, Private` : 仓库权限,`Public` 表示仓库内容对所有人可见,`Private` 可选指定用户可见。
* `Add a README file` : 添加一个README.md,用于介绍仓库内容。
* `Add .gitignore` : 不需要进行版本管理的仓库类型,对应生成文件.gitignore
* `Cho0se a license` : 选择证书类型,对应生成文件LICENSE![image-20240203110143888](https://img-blog.csdnimg.cn/img_convert/46b027f5c79d6cdd440efd72f891d546.png)
- 创建成功以后,界面如下,复制下面的地址备用。
3.2 创建SSH通道
创建SSH通道,使得远程仓库认识你的本地计算机。
- 在 VScode 中,按下快捷键
Ctrl+J
打开底部终端,添加git bash
,输入以下命令生成SSH密钥。
ssh-keygen -t rsa -C "登录邮箱"
其中 登录邮箱 换成最初设置的全局邮箱。
2. 输入命令后,一直回车即可,生成密钥。
3. 在 ssh-agent 上注册你的 SSH 密钥
为了使用这些密钥,我们必须在我们机器上的 ssh-agent 上注册它们。我们需要在 git bash
输入以下命令。
# 运行 ssh-agent
eval "$(ssh-agent -s)"
# 注册 SSH 密钥
ssh-add ~/.ssh/id_rsa
# 查看本机密钥
ssh-add -l
如上图显示即为注册成功。
4. 找到以上密钥所在位置,用记事本打开 id_rsa.pub
文件,内容应为ssh-rsa
开头,你的邮箱结尾的字符串,复制这段字符串。
5. 打开 github ,点击右侧顶部头像,打卡侧边栏,点击 setting
打开设置界面,点击左侧 SSH and GPGG keys
。
6. 点击 New SSH Key
,将刚才的密钥复制到 Key
中,Title
中输入表示你这台设备的名称,点击 Add SSH Key
完成 SSH key 的添加。
3.3 上传文件到github
- 然后让你的本地仓库链接远程仓库,在VScode中的 源代码管理 面板中,按下图顺序点击,添加远程存储库。
2. 在顶部弹出的窗口中,粘贴刚才复制的仓库地址。
3. 填写远程存储仓库名称,方便本地引用远程仓库。
4. 之后便可在源代码管理界面,点击推送,推送你的本地仓库文件到远程仓库。
5. 第一次推送时,会提示“分支"main"没有远程分支。是否要发布此分支?”,点击确定即可。
在网络通畅的情况下,转圈结束后上传完成,可以在github上看到上传的文件。
3.4 从 github 下载项目
- 在github上,点击
code
,复制想要下载的项目的链接。
2. 在你想下载的文件夹下,右键打开git bash
,通过git clone
命令,将文件拷贝到本地。
git clone [email protected]:xxx/test.git
3. 出现以上命令即为下载成功。
3.5 对链接github的本地项目pull/push
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!
这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。
本份面试集锦涵盖了
- 174 道运维工程师面试题
- 128道k8s面试题
- 108道shell脚本面试题
- 200道Linux面试题
- 51道docker面试题
- 35道Jenkis面试题
- 78道MongoDB面试题
- 17道ansible面试题
- 60道dubbo面试题
- 53道kafka面试
- 18道mysql面试题
- 40道nginx面试题
- 77道redis面试题
- 28道zookeeper
总计 1000+ 道面试题, 内容 又全含金量又高
- 174道运维工程师面试题
1、什么是运维?
2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
3、现在给你三百台服务器,你怎么对他们进行管理?
4、简述raid0 raid1raid5二种工作模式的工作原理及特点
5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
7、Tomcat和Resin有什么区别,工作中你怎么选择?
8、什么是中间件?什么是jdk?
9、讲述一下Tomcat8005、8009、8080三个端口的含义?
10、什么叫CDN?
11、什么叫网站灰度发布?
12、简述DNS进行域名解析的过程?
13、RabbitMQ是什么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
7、Tomcat和Resin有什么区别,工作中你怎么选择?
8、什么是中间件?什么是jdk?
9、讲述一下Tomcat8005、8009、8080三个端口的含义?
10、什么叫CDN?
11、什么叫网站灰度发布?
12、简述DNS进行域名解析的过程?
13、RabbitMQ是什么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-xtyCWoCO-1712791667322)]