Git保姆级教程

目录

Git是什么,为什么要学这个工具?

码云注册并创建仓库

Git安装

查看本地仓库状态

添加到暂存区

提交到本地库

修改文件

版本回退

创建、切换和删除分支

合并分支

克隆远端库到本地

将本地库推送到远端库

命令设置别名


Git是什么,为什么要学这个工具?

Git是一个开源的分布式版本控制系统,由Linus Torvalds创建,用于有效、高速地处理从小到大的项目的版本管理。Git是目前世界上最流行的版本控制系统,广泛应用于软件开发中,用于代码的版本控制和协同工作。

以下是Git的一些主要特性:

  1. 分布式架构:Git给予每个开发者一份完整的代码库,包括所有分支和标签,这意味着即使在无网络连接的情况下也能进行大部分操作。

  2. 速度:Git在合并、分支、切换等操作上非常快速,提供了高效的文件合并和代码对比。

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

  4. 支持分支和合并:Git支持快速、简便的分支创建和合并操作,鼓励开发者使用分支进行开发。

  5. 支持离线操作:开发者可以在本地进行大部分Git操作,如提交、查看历史等,不需要网络连接。

  6. 基于变更的合并:Git合并操作是基于差异的,这使得合并过程更加高效和准确。

  7. 多用户支持:Git能够处理多用户协作,允许多个开发者同时工作在同一个项目上。

  8. 可扩展性:Git是一个可扩展的系统,提供了钩子(hooks)和API,允许和其他工具集成。

  9. 支持大型项目:Git能够高效地处理大型项目,如Linux内核,它能够快速地切换分支和合并代码。

  10. 兼容性:Git与其他版本控制系统(如SVN)兼容,可以导入或导出项目。

  11. 图形用户界面:虽然Git本身是一个命令行工具,但存在许多图形用户界面(GUI)客户端,如GitHub Desktop、SourceTree等,使得非命令行用户也能方便地使用Git。

  12. 社区支持:Git拥有一个活跃的社区,提供大量的文档、教程和工具。

Git是现代软件开发中不可或缺的工具之一,它帮助开发者管理代码变更、协作和追踪项目历史。

复杂了, 说白了git就是一套代码, 帮助我们管理项目代码的, 为什么要将项目代码等主要文件进行版本控制呢。比如有这样一个例子, 你在写一个项目代码, 成功了, 但是你觉得这个版本有点问题, 但是能用, 想要改进一下, 但是又害怕改不出来, 最开始能用的版本都没了, 这个时候就可以使用git, 就和我们在代码的时候version1, version2, 会给项目起很多个版本。git就是这样一个作用, 可以帮我们快速追溯代码, 进行版本控制。

码云注册并创建仓库

这个url就是我们仓库的网址, 或者说就是我们创建的仓库在网络服务器中的存储位置

Git安装

没有安装的按照下面的步骤安装一下

首先在虚拟机中安装应用: sudo apt-get install git (ubuntu要有网络)

安装完成应该我们去刚才的仓库的url复制一下, 需要输入账号名和密码, 自己输入一下就行。

git clone url(自己仓库的url)

这样我们刚才在码云上创建的仓库就被克隆到本地了

git初始化: git init

配置姓名: git config --global user.name "Your Name"

配置邮箱: git config --global user.email "you@example.com"

查看并管理目录下文件的状态: git status (新增的及修改的文件都是红色)

将指定文件或所有文件加到暂存区: git add 文件名 或 git add . (绿了)

生成版本: git commit -m “名字” (名字随便起,为了管理)

上交文件或者目录: git push

查看版本记录: git log

查看本地仓库状态

添加到暂存区

提交到本地库

修改文件

版本回退

创建、切换和删除分支

合并分支

克隆远端库到本地

生成密钥: ssh-keygen -t rsa -C "youremail" (直接按三次回车即可生成;虚拟 机输入cat /home/xxx/.ssh/id_rsa.pub查看公钥[xxx为自己的用户名], 将这个公钥添加到git仓库,即可下载clone该仓库的源码文件。) 然后将密钥加载到码云 即可克隆或上传

将本地库推送到远端库

命令设置别名

eg: git log ==> git ls (作用是查看log版本信息)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/699451.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

人工智能在【多模态:多组学+复发转移+肿瘤起源】的最新研究进展|顶刊速递·2024-06-11

小罗碎碎念 本期文献速递的主题是——人工智能多模态/多组学肿瘤的复发转移肿瘤起源。 今天的六篇文章比较特殊,大家要好好留心一下,因为选题是老板亲自下场定的,机会难得。 最近状态不太好,这周还要在北京待几天处理些事情&#…

算法day25

第一题 394. 字符串解码 解法:模拟栈的完成上述的操作; 分析: 下面以如图的字符串来分析; 首先定义一个数字栈用来存放数字,同时定义一个容器stringbuffer栈,里面用来存放字符串; 1、遇到数字&…

【总线】AMBA总线架构的发展历程

目录 引言 发展历程 第一代AMBA(AMBA 1) 第二代AMBA(AMBA 2) 第三代AMBA(AMBA 3) 第四代AMBA(AMBA 4) 第五代AMBA(AMBA 5) AMBA协议简介 ASB&#x…

VRRP多备份组(华为)

#交换设备 VRRP多备份组 当 VRRP 配置为单备份组时,业务全部由 Master 设备承担,而 Backup 设备完全处于空闲状态,没有得到充分利用。VRRP 可以通过配置多备份组来实现负载分担,有效地解决了这一问题。 VRRP 允许同一台设备的…

排序方法——《快速排序》

P. S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。 P. S.:测试代码均未展示头文件stdio.h的声明,使用时请自行添加。 博主主页:Yan. yan.                        …

10、系统安全及应用

1、账号安全 用户的账号是计算机使用者的身份凭证或标识,每个要访问系统资源的人,必须凭借其用户账号才能进入计算机。 1.1 系统账号清理 在Linux系统中,除了用户手动创建的各种账号之外,还包括随系统或程序安装过程而生成的其…

Java版本+企业电子招投标系统源代码+支持二开+Spring cloud +鸿鹄电子招投标系统

随着公司的迅速扩张,对内部采购管理的要求也随之提高。为了构建一个公平、透明、公正的采购体系,并有效降低采购成本,我们决定开发一款符合国家电子招投标法规的电子招标采购软件。该软件将提升招投标工作的公开性和透明度,通过电…

macOS Sequoia 开发者测试版下载和安装教程

macOS Sequoia 于 2024年6月10日在WWDC 2024 上发布,里面添加了AI、窗口排列、操控iPhone等功能,目前发布的为测试版本,可能很多人不知道怎么去下载安装,现在小编教一下大家怎么安装最新的 macOS Sequoia 开发者测试版。 下载 mac…

Qt系统相关

本文目录 1.Qt事件事件的处理标签事件鼠标事件滚轮事件按键事件定时器事件窗口事件事件派发器 2.Qt文件操作QFile的基本使用 3.Qt多线程使用线程线程锁connect的第五个参数 条件变量和信号量 4.Qt网络编程UDP SocketTCP SocketQTcpServerQTcpSocket HTTP的编写 5.QT多媒体播放音…

vivado HW_SIO_GT

描述 Xilinx的可定制LogiCORE™IP集成误码率测试仪(IBERT)核心 FPGA是为评估和监控千兆收发器(GTs)而设计的。IBERT core支持系统内串行I/O验证和调试,使您能够进行测量和优化 您的设计中的高速串行I/O链路。参考综合误…

【ARM Coresight Debug 系列 -- ARMv8/v9 软件实现断点地址设置】

请阅读【嵌入式开发学习必备专栏 】 文章目录 ARMv8/v8 软件设置段带你断点地址软件配置流程代码实现 ARMv8/v8 软件设置段带你 在ARMv8/9架构中,可以通过寄存器 DBGBVR0_EL1 设置断点。这个寄存器是一系列调试断点值寄存器中的第一个DBGBVRn_EL1,其中n…

Transformer结合U-Net登上Nature子刊!最新成果让精度和效率都很美丽

最近一种基于视觉Transformer改进的U-Net来检测多光谱卫星图像中甲烷排放的深度学习方法登上了Nature子刊。与传统方法相比,该方法可以识别更小的甲烷羽流,显著提高检测能力。 这类Transformer与U-Net结合的策略是一种创新的深度学习方法,它…

大模型生成短视频

最近看到一个开源项目可以通过AI生成短视频,然后尝试了下,感觉还不错,下面是具体步骤。 项目名叫moneyprinterTurbo,它本意是对接到Youtube,自动生成视频并上传到Youtube获取流量赚钱,所以项目名叫moneypri…

函数计时的方法

1. console 对象 可以调⽤ console 对象的 time 和 timeEnd ⽅法来对⼀段程序进⾏时间计算。例如: function fib(n) {if (n 0) return;let a arguments[1] || 1;let b arguments[2] || 1;[a, b] [b, a b];fib(--n, a, b); } console.time(); // 记时开始 fib…

纹理贴图必须要输入顶点坐标或纹理坐标吗

最近知识星球的一位同学,面试时被问到:纹理贴图必须要输入顶点坐标或纹理坐标吗? 他一下子被这个问题问蒙了,虽然他知道正确答案是否定的,但是说不上来理由。 这个就引出了文本提到的全屏三角形,它不需要顶点缓冲区,而是利用顶点着色器直接生成所需的顶点坐标和纹理坐标…

推荐一些企业热门的 DevOps 工具(非常详细)零基础入门到精通,收藏这一篇就够了

最近一段时间,我们见证了 DevOps 技术的飞速发展。当今流行且功能强大的工具可能会成为下一年度的过时工具,甚至可能很快被另一种工具取代。如前所述,作者的目的不是通过这篇文章来评判哪些工具最受欢迎或功能最全,而是让读者全面…

【每日一题】错误的集合

错误的集合 ✨审题:在一个1-n的数组中,会有一个元素重复,一个元素丢失;👉目标;找到重复的元素和丢失的元素并放入一个数组中返还回去 ✨有没有想到单身狗问题的进阶版那个思路,找2个单身狗,一个…

tcp协议的延迟应答(介绍+原则),拥塞控制(拥塞窗口,网络出现拥塞时,滑动窗口的大小如何确定,慢启动,阈值)

目录 延迟应答 引入 介绍 原则 拥塞控制 引入 网络出现拥塞 引入 介绍 介绍 拥塞窗口 介绍 决定滑动窗口的大小 慢启动 介绍 为什么要有慢启动 阈值 算法 总结 延迟应答 引入 发送方一次发送更多的数据,发送效率就越高 因为要写入网卡硬件的io速度很慢,尽量…

176.二叉树:从中序与后序遍历序列构造二叉树(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* Tre…

神卓互联内网穿透:使用超简单,拿捏

神卓互联内网穿透技术是一种能够打破内网与外网之间壁垒的创新技术。它通过一系列智能的网络协议和算法,实现了将企业内部网络资源安全、稳定地暴露给外部网络访问。这使得无需进行复杂的网络配置和改造,就能轻松实现远程办公、跨地域协作等重要应用。 神…