赞
踩
git config --global user.name "Your Name"
git config --global user.email "youremail@yourdomain.com"
配置完成后,可以通过以下命令确认这些信息:
git config --list
user.name=Your Name
user.email=youremail@yourdomain.com
git 版本控制是控制 某一个文件夹 下的所有文件。
利用 VScode 打开想要控制的文件所在的文件夹, 左侧有个源代码管理的插件(没有的在VScode扩展中下载即可),打开后点击初始化仓库,完成对git 仓库的初始化。
初始化仓库介绍后,源代码管理插件变成如下图所示,git 会在该文件夹下创建 .git
的隐藏文件夹,用来存储 git 版本信息。
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. 点击+号,在消息框输入版本信息,点击提交,即完成了文件的修改,该修改版本将会被 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)
当点击右侧时间线,可以对比提交的版本与当前版本的区别。左侧为对比的版本,右侧为当前版本,红色为当前版本删除的部分,绿色为当前版本添加的部分。
版本回退分为 硬回退(Hard reset) 和 软回退(Soft reset) 。它们的区别在于它们对工作区、暂存区和版本库的影响不同。
模式 | HEAD | 暂存区 | 工作区 |
---|---|---|---|
Soft | 移动到指定提交 | 不变 | 不变 |
Hard | 移动到指定提交 | 重置为指定提交 | 重置为指定提交 |
软回退模式 只会移动HEAD指针,不会修改暂存区和工作区的内容,这意味着你可以 **撤销最近的提交并保留你的修改 **。
在Git History
页面中,点击要回退的版本的右侧的 Soft
按钮,进行版本回退。
提示框提示 “所有受影响的文件将被合并并保存在本地工作区中” ,选择 OK
,确定回退。
此时,版本回退到了你选择的版本,但是本地文件仍为回退前的版本。
2. 硬回退(Hard reset)
硬回退模式 会移动HEAD指针,并重置暂存区和工作区为指定提交的内容,这意味着你可以 **完全丢弃某个提交及其后续的所有修改 **。
在 Git History
页面中,点击要回退的版本的右侧的 Hard
按钮,进行版本回退。
提示框提示"这对您当前的工作集是不可逆的。未提交的本地文件将被删除",选择 OK
,确定回退。
此时,版本回退到你选择的版本,并且你的本地文件也回退到选择的版本。
硬回退不可逆,建议确定好要回退版本再使用。
Branch
按钮,创建分支。
2. 在提升框中写分支的名字,点击 OK
,创建分支。
3. 创建完成后,看见右侧绿色 test6_1
,代表当前分组位置,main
代表主分支位置。
4. 点击新创建的 test6_1
分支,在弹出的提示窗选择 OK
切换到新的分支(前提是当前文件未做修改)。
也可以在 VScode 左下角进行分支转换,点击 main
,选择你要切换的分支,进行切换。
5. 顶部弹出弹窗,点击要切换的分支,进行分支切换。
6. 与在主分支提交相同,在其他分支也是再消息栏填写版本内容后提交。
7. 分支合并:
切换到主分支,点击 源代码管理 的右上角三个点,选择分支-合并。
在顶部选择你要合并的分支。
分支合并成功,文件会有冲突存在,此时需要对有冲突文件进行编辑。
合并更改有三种方式:
* 采用当前更改:保留你所在的分支的修改,忽略另一个分支的修改。
* 采用传入的更改:保留另一个分支的修改,忽略你所在的分支的修改。
* 保留双方更改:同时保留两个分支的修改,让你自己再次编辑文件,选择最终的修改。
版本合并一直都是很困难的,需要一步一步来查看版本的区别,选择合适的合并方式。
2. 往往我们需要看到最原始的版本,才能方便我们确定合并时,哪些是我们要的,哪些是不要的。在合并编辑器中,可以点击右上角的三个点,选择显示基顶部。
3. 此时,我们得到了 基础 版本,与之前三个版本同框的情况,方便确定合并内容。
可以选择 接受当前 ,接受传入,或者不做更改,最后选择完成合并。
4. 当你不想进行合并时,在顶部输入>Git: Abort Merge
,选择取消合并。
上面介绍了 git 在本地的使用,下面介绍结合 github 的 git 的远程控制。
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)
创建SSH通道,使得远程仓库认识你的本地计算机。
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 的添加。
2. 在顶部弹出的窗口中,粘贴刚才复制的仓库地址。
3. 填写远程存储仓库名称,方便本地引用远程仓库。
4. 之后便可在源代码管理界面,点击推送,推送你的本地仓库文件到远程仓库。
5. 第一次推送时,会提示“分支"main"没有远程分支。是否要发布此分支?”,点击确定即可。
在网络通畅的情况下,转圈结束后上传完成,可以在github上看到上传的文件。
code
,复制想要下载的项目的链接。
2. 在你想下载的文件夹下,右键打开git bash
,通过git clone
命令,将文件拷贝到本地。
git clone git@github.com:xxx/test.git
3. 出现以上命令即为下载成功。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!
这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。
本份面试集锦涵盖了
总计 1000+ 道面试题, 内容 又全含金量又高
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)]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。