0


编程入门(八)【小白级教程GIt命令与操作】

读者大大们好呀!!!☀️☀️☀️

请添加图片描述
👀期待大大的关注哦❗️❗️❗️

🚀欢迎收看我的主页文章➡️木道寻的主页

文章目录

🔥前言

Git哲学三问

什么是git?

Git 是一个分布式版本控制系统,由 Linus Torvalds 在 2005 年为 Linux 内核开发项目而设计和实现。它为软件开发提供了先进的功能,以支持代码的高效管理、分支操作、合并、代码审查和多人协作。以下是从软件工程师的角度对 Git 的一些专业介绍:

分布式架构(Distributed Architecture)


Git 给予每个开发者一个本地仓库的完整副本,包括所有分支和标签。这与集中式版本控制系统(如 SVN)形成对比,后者依赖于单一的中央服务器。

数据完整性(Data Integrity)


Git 通过 SHA-1 哈希算法保护代码和历史记录的完整性,确保代码不会在传输过程中损坏。

网络效率(Network Efficiency)


Git 在网络操作中表现出高效率,如克隆(clone)、拉取(fetch)、推送(push)等操作,只传输差异数据,而不是整个仓库。

分支管理(Branching and Merging)


Git 的分支操作非常快速且简单。它鼓励开发者频繁使用分支来隔离不同的开发工作,并通过合并操作整合变更。

变更追踪(Change Tracking)


Git 跟踪文件的变更历史,包括每次提交(commit)的元数据,如作者、提交信息和变更的文件列表。

暂存区(Staging Area)


Git 使用暂存区来准备下一次提交,这允许开发者有选择性地提交更改,而不是一次性提交所有更改。

原子操作(Atomic Operations)


Git 的操作如提交、合并和回滚是原子性的,这意味着它们要么完全应用,要么完全不应用,不会出现部分更新的情况。

子模块(Submodules)


Git 支持将一个 Git 仓库作为另一个仓库的子模块,这对于管理依赖于多个项目的复杂项目非常有用。

工作流(Workflows)


Git 支持多种工作流程,如 Gitflow、Forking 工作流等,以适应不同的开发需求和团队协作模式。

钩子(Hooks)


Git 提供了客户端和服务器端钩子,允许开发者在特定事件发生时自动执行脚本,如 pre-commit、post-receive 等。

分布式代码审查(Distributed Code Review)


Git 支持通过补丁(patch)和 pull request 进行代码审查,促进代码质量和团队协作。

多平台支持(Cross-Platform Support)


Git 可在多种操作系统上运行,包括 Linux、macOS 和 Windows,具有广泛的适用性。

性能(Performance)


Git 在合并、分支和其他操作上的性能非常出色,即使是在包含大量文件和复杂历史的大型项目中。

可扩展性(Extensibility)


Git 的设计允许通过第三方工具和插件来扩展其功能,以满足特定的开发需求。
总的来说git就是开源的分布式版本控制系统
Git:将文档的各种版本保存下来,甚至可以任意切换版本
分布式:每一个用户都拥有自己的本地仓库

为什么用git?

Git 是一个强大的版本控制系统,适用于多种软件开发场景。以下是一些常见的使用 Git 的场景以及为什么选择 Git 的原因:

个人项目管理:

开发者可以使用 Git 来追踪和管理个人项目的进度,通过提交历史记录来回顾和比较代码变更。

团队协作开发:

在团队项目中,Git 支持多开发者同时工作在不同功能或修复上,通过分支和合并来集成各自的工作。

开源项目贡献:

开源项目通常使用 Git 来管理源代码,贡献者可以通过 fork 仓库、创建分支、提交更改并通过 pull request 来贡献代码。

持续集成/持续部署(CI/CD):

Git 与 CI/CD 系统集成,可以自动化测试和部署流程,每次提交或合并可以触发构建和部署任务。

历史记录和代码审查:

Git 提供详尽的提交历史记录,便于代码审查和理解历史变更。

回滚和代码恢复:

在出现问题时,Git 可以快速回滚到之前的稳定版本,或恢复意外删除的文件和代码。

分布式工作:

分布式架构允许开发者在没有中央服务器的情况下工作,适合分布式团队或远程工作。

跨平台开发:

支持多种操作系统,便于跨平台项目的代码管理和同步。

大型项目支持:

即使在包含大量文件和复杂历史的大型项目中,Git 也能保持高性能。

子模块和依赖管理:

对于包含多个子项目或依赖库的大型应用程序,Git 子模块提供了一种有效管理依赖的方式。

工作流灵活性:

Git 支持多种工作流程(如 Gitflow、Forking 工作流等),团队可以根据需要选择或定制工作流程。

社区和工具支持:

Git 拥有庞大的社区支持,提供了大量的工具和资源来扩展其功能,如 GitHub、GitLab 和 Bitbucket。

安全性:

Git 保证了代码的安全性和完整性,使用 SHA-1 哈希算法来确保代码变更的不可篡改性。

免费和开源:

Git 是免费和开源的,可以不受限制地使用,适用于各种规模的项目和团队。

实际例子:
需求:
毕业论文初稿.txt -->毕业论文修改一稿.txt -->毕业论文修改二稿.txt -->毕业论文打死不改稿.txt -->毕业论文不死还改稿.txt
测试计划文档|测试代码py java==>v1—>v2—>v3

传统工作场景下缺点:
1、占用空间大
2、无法多人协作
3、不能自动备份

Git工具登场了,节省空间保留版本+多人协作

怎么掌握git?

git版本控制工具,使用架构图----工作场景:多人协作开发
在这里插入图片描述

🚀准备git软件

1️⃣git官网地址
在这里插入图片描述
2️⃣按需求下载:本文是在Windows系统下演示(Linux可直接使用这个命令

yum install git


在这里插入图片描述
3️⃣点击运行,狂点下一步
在这里插入图片描述

🚀本地仓库功能(交互场景)

保存版本

首先准备一个工作区(文件夹)用于编写文档。

在这里插入图片描述
然后在工作区(文件位置空白处)右击:
在这里插入图片描述
点击bash here:
注意:git在首次使用需要声明一下自己身份 用户名+邮箱

git config --global user.name "yourname"
git config --global user.email "youremail"

在这里插入图片描述
查看配置的用户名和邮箱
在这里插入图片描述

创建一个本地仓库

git init

在这里插入图片描述
.git文件夹不要动,隐藏了一切信息,包含了本地仓库。
在这里插入图片描述
在工作区进行作业,修改文档后,

git add

命令(纳入暂存区)工作区的文件支持被git管理,高速git工作区有改动了~)

git add 命令集
git add .#操作当前目录所有文件 进入暂存区
git add *.txt #操作当前目录部分文件 进入暂存区--目录下txt结尾文件 *0~多个字符
git add mdx111.txt #操作当前目录单个文件 进入暂存区

在这里插入图片描述
暂存区–提交整个暂存区–> 本地仓库(只要提交一次产生一个新的版本)

git commit

命令

git commit 命令集

git commit 要求输入提交信息,告知当前版本含义~ 默认方式 以vi保存提交日志
在这里插入图片描述
vi的操作命令在笔者的前篇Linux命令介绍,可去主页查找,提交信息为第一个版本日志提示信息,而后

:wq

保存
在这里插入图片描述
返回的git界面
在这里插入图片描述
如果嫌vi界面有的麻烦
直接

git commit -m

提交一个简单的日志
在这里插入图片描述
因为没有改变版本,前面已经提交过,所以显示没有文件被提交。恭喜你,看到这里,就基本对git有大概的了解,和基础的操作了。可以开始干活了。

切换版本

需求:最新版本的版本出问题,回溯到之前版本,重新开发文档?
v1版本----》v2版本-----》v3(问题版本)----修改–》回到v2,v4版本

实验

1、准备3个版本

1️⃣进入工作区,修改文件,修改一次提交一次
(v1提交的是空白文档)。
在这里插入图片描述
以下命令集重复两次直至到v3版本:
git status 查看是否修改
git add .
git commit -m “v2”

在这里插入图片描述
上图红色字体表示修改未纳入暂存区,经过了

git add

,操作后,文件名变绿,说明修改提交成功。
重复操作提交:
在这里插入图片描述
在这里插入图片描述

2、回溯到第二个任意版本

1️⃣快速回到上一版本
命令:

git reset --hard HEAD^

2️⃣HEAD 当前版本

^

上一个版本

^^

上上个版本

HEAD ~100

回到前100个版本
在这里插入图片描述
在这里插入图片描述

3️⃣根据日志任意切换版本~
需求版本一多,遗忘版本含义
版本号唯一
命令:

git reflog

查看版本含义+查看版本号
在这里插入图片描述
根据版本号,回到第三个版本v3
命令:

git reset --hard 06ade80

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

3、修改产生其他版本
注:如果返回的是v2版本,操作修改后产生的不是v3版本而是v4版本。因此日志不能写v3版本

恢复文件

文件恢复,有几种场景。
1️⃣在工作区误操作,并没有加入暂存区
切换之前的版本上去
在这里插入图片描述
命令:git checkout – mdx111.txt
在这里插入图片描述
命令的含义是从本地仓库取出
在这里插入图片描述

2️⃣在工作区误操作,加入暂存区,没有提交新版本
在这里插入图片描述
命令:
git add . 加入暂存区
git reset HEAD mdx111.txt 撤销暂存区修改
git status 验证回到场景1
git checkout – mdx111.txt
在这里插入图片描述
在这里插入图片描述

3️⃣在工作区误操作,加入暂存区,提交了新版本
在这里插入图片描述
版本回溯到正确版本,前面已经演示,本节不再赘诉。
4️⃣在工作区误操作,提交到本地仓库—>远程仓库
无解 建议推送远程仓库内容 经过 自测|审核 不要随意推送 ,造成团队困扰
!!!
5️⃣工作区中误删了文件|扩展如何彻底删除文件~
在这里插入图片描述
命令:

git checkout -- mdx111.txt

在这里插入图片描述
在这里插入图片描述
彻底删除文件:
命令:

git rm mdx111.txt

在这里插入图片描述
checkout命令不能恢复。
在这里插入图片描述
可以使用版本回溯

git reset --hard 06ade80

在这里插入图片描述
删除一切:linux 命令rm 删除.git文件夹与工作区文件。
在这里插入图片描述

在这里插入图片描述

🚀实现共享仓库

分支冲突

什么是分支?branch
一个本地仓库不太够用,架构图如下:
在这里插入图片描述

把仓库分成一个又一个小仓库。

1、创建分支

主分支:(commit 就有主分支master)
其他分支:

git branch 分支名字 创建分支
2、切换分支
git checkout 分支名字
git checkout -b 分支名字 #创建并切换~
3、合并分支

切换到master分支

git merge 分支名字
4、删除分支:切换到master分支

git branch -d 推荐 删除无用分支 已经合并的分支
git branch -D 强制删除

5、查看所有分支

命令:

git branch -a

实验

1、 第一个master分支
在这里插入图片描述
2、创建test分支
在这里插入图片描述
3、创建并切换dev分支
在这里插入图片描述
4、dev分支为自定义的开发功能仓库,在dev中开发了其他的功能版本,并提交。
在这里插入图片描述

在这里插入图片描述
5、开发的新功能稳定,切换到master分支,合并master与dev ====》产生新的版本号~~mater —>v2
在这里插入图片描述
6、删除已经合并的dev分支
在这里插入图片描述
7、分支特有现象:分支冲突
1️⃣切换至test分支
在这里插入图片描述
该分支仍为v1版本,分支版本情况如下:
dev v1—> v2—>整个分支删除消失
master v1–合并–》v2
test v1
在这里插入图片描述
2️⃣修改test分支,产生test的v2版本
在这里插入图片描述
在这里插入图片描述

3️⃣切换至master分支,合并test分支。
在这里插入图片描述
出现了冲突的情况:
在这里插入图片描述

解释:HEAD表示当前分支,合并进来的分支test分支产生了冲突,git进行询问:master是要dev还是要test?

解决:不能自动化解决,也不能当做bug,是日常工作中遇到了现象,最终只能靠人为决定~
产生新的版本,保障需求:
在这里插入图片描述
修改后,使用

git add

git commit

命令
在这里插入图片描述
实际工作中可能会有成百个版本遇到冲突,不要纠结原因,打开冲突文件进行人为取舍,产生新的版本。

远程仓库 共享仓库使用

技术实现手段

1、互联网github全球最大的开源仓库网站|支持私有仓库
私有仓库,公司自己研发+保密版权
开源仓库,全世界开发,丰富
2、本文演示为官网地址gitee 码云仓库,国内最大
在这里插入图片描述

3、内网 gitlab共享仓库 —运维搭建
github gitee gitlab ===》操作完全一致

实验

1、新建一个私有仓库(运维)

在这里插入图片描述
在这里插入图片描述
为了后续的操作,我设置了模板,开始创建可以初始化仓库。
在这里插入图片描述
SSH协议的访问地址:
在这里插入图片描述

2、本地机器要和私有仓库完成SSH授权

目的:让本地的机器有资格 通过SSH地址访问远程仓库
命令:

ssh -keygen -t rsa 加密方式 -C 主题

在这里插入图片描述
查看公钥:
命令:

cat 地址

在这里插入图片描述
公钥安装到码云:
在这里插入图片描述
在这里插入图片描述
进行授权,复制公钥安装到码云上,自己的电脑留下私钥
在这里插入图片描述
安装成功:
在这里插入图片描述
使用原理:
产生文件
id_rsa 私钥 (钥匙)和 id_rsa.pub 公钥(锁)(锁|安装在码云上)
有钥匙的机器就可以开锁!!!

3、本地仓库绑定远程仓库

在本地仓库位置敲命令,即按照原来的步骤,创建本地仓库
在这里插入图片描述
绑定命令:

git remote add origin 远程仓库的SSH地址

remote add 添加远程
origin 远程仓库 在本地使用别名 —习惯

在这里插入图片描述

4、从本地仓库下载远程仓库内容--推荐,保存和远程仓库同步

命令:

git pull origin master --allow-unrelated-histories

在这里插入图片描述

下载合并本地仓库分支日志
在这里插入图片描述
文件显示:
在这里插入图片描述

5、从本地推送内容到远程仓库

工作区修改了,必须先add + commit 过后再推送
命令:git push origin master
在这里插入图片描述
码云上查看推送的内容:
在这里插入图片描述
远程仓库实验完毕!!!

⭐️⭐️⭐️总结

git版本控制,命令速查思维导图
在这里插入图片描述

✈️✈️✈️如果喜欢这篇文章的话

🙏大大们可以动动发财的小手:

👉👉👉
点赞:👍收藏:⭐️评论:✍️👈👈👈

标签: git github

本文转载自: https://blog.csdn.net/qq_48490554/article/details/138651527
版权归原作者 一川烟柳清风 所有, 如有侵权,请联系我们删除。

“编程入门(八)【小白级教程GIt命令与操作】”的评论:

还没有评论