Linux版本控制器Git【Ubuntu系统】

news/2025/2/25 14:31:59

文章目录

  • **前言**
  • 一、版本控制器
  • 二、Git 简史
  • 三、安装 Git
  • 四、 在 ==Gitee==/Github 创建项目
  • 五、三板斧
    • 1、git add 命令
    • 2、git commit 命令
    • 3、git push 命令
  • 六、其他
    • 1、git pull 命令
    • 2、git log 命令
    • 3、git reflog 命令
    • 4、git stash 命令
  • 七、.ignore 文件
    • 1、为什么使用 .gitignore ?
    • 2、如何创建.gitignore
    • 3、.gitignore的用法简介
  • 八、Git 小总结

前言

不知道你工作或学习时,有没有遇到这样的情况:我们在编写各种文档时,为了防止文档丢失,更改失误,失误后能恢复到原来的版本,不得不复制出一个副本,比如:

“报告-v1”
“报告-v2”
“报告-v3”
“报告-确定版”
“报告-最终版”
“报告-究极进化版”

每个版本有各自的内容,但最终会只有一份报告需要被我们使用 。
但在此之前的工作都需要这些不同版本的报告,于是每次都是复制粘贴副本,产出的文件就越来越多,文件多不是问题,问题是:随着版本数量的不断增多,你还记得这些版本各自都是修改了什么吗?
文档如此,我们写的项目代码,也是存在这个问题的!!

一、版本控制器

为了能够更方便我们管理这些不同版本的文件,便有了版本控制器。所谓的版本控制器,就是能让你了解到一个文件的历史,以及它的发展过程的系统。通俗的讲就是一个可以记录工程的每一次改动和版本迭代的一个管理系统,同时也方便多人协同作业。
目前最主流的版本控制器就是 Git 。Git 可以控制电脑上所有格式的文件,例如 doc、excel、dwg、dgn、rvt等等。对于我们开发⼈员来说,Git 最重要的就是可以帮助我们管理软件开发项目中的源代码文件!

二、Git 简史

同生活中的许多伟大事物一样,Git 诞生于一个极富纷争大举创新的年代。

Linux 内核开源项目有着为数众多的参与者。 绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。 到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。

到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。 这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。
他们对新的系统制订了若干目标:

• 速度
• 简单的设计
• 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
• 完全分布式
• 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。 它的速度飞快,极其适合管理大项目,有着令⼈难以置信的非线性分支管理系统。

三、安装 Git

1 yum install git

四、 在 Gitee/Github 创建项目

注册账号
这个比较简单, 参考着官网提示即可. 需要进行邮箱校验.

创建项目

  1. 登陆成功后, 进入个人主页, 点击右上角的 新建仓库 按钮新建仓库
    在这里插入图片描述

  2. 然后跳转到的新页面中输入仓库名称(注意, 名称不能重复, 系统会自动校验. 校验过程可能会花费几秒钟). 校验完毕后, 根据提示填写信息,初始化仓库后,确认创建.
    在这里插入图片描述

  3. 在创建好的项目页面中复制项目的链接, 以备接下来进行下载.
    在这里插入图片描述

下载项目到本地
创建好一个放置代码的目录.

1 git clone [url]

这里的 url 就是刚刚建立好的 项目 的链接.

五、三板斧

git_add__64">1、git add 命令

将代码放到刚才下载好的目录中

git add [文件名]
#添加指定文件

git add .   
#所有未添加的文件

将需要用 git 管理的文件告知 git

git_commit__76">2、git commit 命令

提交改动到本地

git commit -m "XXX"    #添加描述

最后的 “.” 表示当前目录
提交的时候应该注明提交日志, 描述改动的详细内容.

git_push__85">3、git push 命令

同步到远端服务器

git push

需要填入用户名密码. 同步成功后, 刷新 Github 页面就能看到代码改动了.

配置免密码提交
https://blog.csdn.net/

六、其他

git_pull__96">1、git pull 命令

拉取托管平台的代码数据到本地文件夹.
命令格式:

git pull

git_log__102">2、git log 命令

命令格式:

git log
# 查看所有提交过的版本的详细信息
 
git log --pretty=oneline
# 只显示版本号和提交时的备注信息

git_reflog__111">3、git reflog 命令

命令格式:

git reflog
# 可以查看所有分支的所有操作记录(包括已经被删除的commit记录和reset的操作)

git_stash__118">4、git stash 命令

该命令主要用于解决文件冲突
命令格式:

git stash
# 保存当前工作进度,会把暂存区和工作区的改动保存起来

七、.ignore 文件

gitignore__127">1、为什么使用 .gitignore ?

在一些项目中,我们不想让本地仓库的所有文件都上传到远程仓库中,而是有选择的上传,比如:一些依赖文件(node_modules下的依赖)、bin 目录下的文件、测试文件等。一方面将一些依赖、测试文件都上传到远程传输量很大,另一方面,一些文件对于你这边是可用的,在另一个人那可能就不可用了,比如:本地配置文件。

为了解决上述问题,git 引入了 .gitignore 文件,使用该文件来选择性的上传文件。

gitignore_131">2、如何创建.gitignore

  1. 进入项目的目录下,点击右键单击【git bash】
    在这里插入图片描述

  2. 在命令下输入【touch .gitignore】创建文件

$ touch .gitignore
  1. 创建成功
    在这里插入图片描述

gitignore_143">3、.gitignore的用法简介

Git忽略规则:

#     
#注释,内容被 Git 忽略
.sample   
# 忽略所有 .sample 结尾的文件
!lib.sample 
# 但 lib.sample 除外
/TODO   
# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/   
# 忽略 build/ 目录下的所有文件
doc/.txt   
# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
[]     
# 匹配字符列,如 [Ll]ibrary 意为Library或library均满足条件

如果没特殊要求也可以使用官方版本的.gitignore配置,通常初始化仓库会自动生成,若无请自行搜寻。

八、Git 小总结

在这里插入图片描述


http://www.niftyadmin.cn/n/5865611.html

相关文章

Deepseek引爆AI热潮 防静电地板如何守护数据中心安全

近期,Deepseek的爆火将人工智能推向了新的高度,也引发了人们对AI背后基础设施的关注。作为AI运行的“大脑”,数据中心承载着海量数据的存储、处理和传输,其安全稳定运行至关重要。而在这背后,防静电地板扮演着不可或缺…

告别阻塞,迎接高效:掌握 AsyncIOScheduler 实现异步任务调度

前言 时间在编程中是宝贵的,直接关联到效率与灵活性,尤其在异步编程里,如何优雅地管理定时任务简直是一门“艺术”。如果你还在用 time.sleep() 来控制延时任务,恐怕你早已体会过它的“痛苦”:程序卡住、线程阻塞、性能急剧下滑。想象一下,你的程序如同一个永远无法按时…

HTML应用指南:利用GET请求获取全国泸溪河门店位置信息

随着新零售业态的快速发展,门店位置信息的获取变得越来越重要。作为新兴烘焙品牌之一,泸溪河自2013年在南京创立以来,一直坚持“健康美味,香飘世界”的企业使命,以匠人精神打造新中式糕点。为了更好地理解和利用这些数据,本篇文章将深入探讨GET请求的实际应用,并展示如何…

力扣3464. 正方形上的点之间的最大距离

力扣3464. 正方形上的点之间的最大距离 题目 题目解析及思路 题目要求在points集合中找出k个点,k个点之间的最小的曼哈顿距离的最大值 最大最小值的题一般直接想到二分 将正方形往右展开成一条线,此时曼哈顿距离为两点直线距离**(仅起点右边的点)** …

线性模型 - 支持向量机(参数学习)

支持向量机的主优化问题为凸优化问题,满足强对偶性,即主优化问题可以 通过最大化对偶函数来求解。对偶函数是一个凹函数,因此最大化对偶函数是一个凸优化问题,可以通过多种凸优化方法来进行求解,得到拉格朗日乘数的最优…

ubuntu20.04音频aplay调试

1、使用指定声卡,aplay 播放命令 aplay -D plughw:1,0 test2.wav2、 录音 arecord -Dhw:1,0 -d 10 -f cd -r 44100 -c 2 -t wav test.wav3、各个参数含义 -D 指定声卡编号 plughw:0,0 //0,0代表card0,device0,可以通过arecord -l获取 -f 录音格式 S16_LE…

Java 集合框架大师课:集合流式编程革命(三)

🚀 Java 集合框架大师课:集合流式编程革命(三) 🔥 系列成就:集合框架战力值突破 90%!建议边撸代码边循环《孤勇者》进入心流状态 🎧 第一章:流式编程总动员 1.1 现实中的…

深入剖析:基于红黑树实现自定义 map 和 set 容器

🌟 快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区。🌟 在 C 标准模板库(STL)的大家庭里,map和set可是超级重要的关联容器成员呢😎&#x…