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版本信息)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

远程咨询的好处都有哪些呢?

随着科技的飞速发展,远程咨询正逐渐成为人们获取医疗服务的一种新方式。那么什么是远程咨询呢?其又有哪些好处呢?下面就给大家详细地说说。 远程咨询的概念 远程咨询,顾名思义,是指通过互联网技术,实现患…

LeetCode 746.使用最小花费爬楼梯

题目: 给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 请你计算并返回达到楼梯顶部的最低花费…

使用try-catch捕获异常到底会不会影响性能?尤其是try-catch还比较多的情况下?

从字节码层面来看,没抛错两者的执行效率其实没啥差别。 “那为什么网上流传着try-catch会有性能问题的说法啊? 这个说法确实有,在《Effective Java》这本书里就提到了 try-catch 性能问题: 总结: 1、try-catch 相比较…

C++ STL std::map的实现机制【面试】

基于红黑树:std::map 利用红黑树的数据结构来存储数据,确保了操作的平衡性和效率。 自动排序:红黑树保证了元素的有序性,即元素会根据键自动排序。 唯一键值:每个键都是唯一的,如果尝试插入重复的键&…

联想测开一面(电话面试)笔试60%

3.21 无自我介绍基本问项目,问实习对python自动化测试了解多少讲一下python中打包和解包的概念学校无测试相关课程,平时用什么平台去学习的计算机底层实现原理简要说说(软硬结合)大致讲一下了解的C的一些数据结构C指针和数组的区…

【TensorFlow深度学习】DQN(Deep Q-Network)算法详解

DQN(Deep Q-Network)算法详解 DQN(Deep Q-Network)算法详解:深度强化学习的里程碑DQN算法原理代码实现结语 DQN(Deep Q-Network)算法详解:深度强化学习的里程碑 在强化学习的浩瀚宇…

汇编:数组数据传送

要在32位汇编中实现数组数据的传送,可以使用字符串操作指令 MOVS 以及其前缀 REP,可以高效地复制数组数据。 MOVS 指令是一种字符串操作指令,用于将数据从源地址移动到目标地址。MOVS 指令有不同的变种,可以处理不同大小的数据&a…

水印怎么去除?Windows 上的最佳水印软件

我们都知道,任何水印软件都可以防止您的数字财产被盗。此外,水印是一种虚拟营销元素,可以帮助您推广您的作品。 奇客水印管家是 Internet 上适用于 Windows 7、8 、10 和 11 的最高效的水印软件。此外,它还允许用户通过添加或删除…

计算机基础之:UMA与NUMA区别

基础 UMA(Uniform Memory Access)与NUMA(Non-Uniform Memory Access)是两种不同的内存架构设计,主要应用于多处理器系统中,它们的主要区别在于内存访问的效率和方式: UMA(Uniform …

【C++】环境搭建及基本工作流程

C 当你需要写性能良好的代码时,C仍是不二选择 如果你想访问硬件、如果你想对硬件进行控制,C仍是首选。 所有的游戏引擎都是用C编写的,因为C可以直接控制硬件。 原理: C代码-->编译器编译comple-->目标平台的机器码-->放…

锂电池危险特性分类鉴别 危险品危险特性分类鉴别报告怎么申请

锂电池危险特性分类鉴别报告的办理流程 锂电池危险特性分类鉴别报告是用于确定锂电池及其产品对应的运输危险品分类,判断是否符合国际公认的危险品分类标准的报告。办理此类报告的流程通常包括以下几个步骤: 提供样品及测试需求:需要提供样品…

java如何实现字符串连接

在java中,字符串与字符串连接可以用运算符和 比如有字符串a,字符串b 想要把a和b连接起来,定义一个字符串变量c cab 或者 ab 示例代码 public class Zifuchuanlianjie {public static void main(String[] args) {String a"我叫李狗蛋";S…

【名词解释】Unity中的Scrollbar组件及其使用示例

Unity是一个广泛使用的跨平台游戏开发引擎,它提供了许多内置的UI组件,其中就包括Scrollbar组件。下面是对Scrollbar组件的名词解释和使用方法的代码示例。 名词解释 Scrollbar组件是Unity UI系统中的一个UI控件,用于实现滚动功能。它通常由…

16.左侧导航菜单制作

左侧导航菜单制作 1. 修改路由&#xff0c;方便查看页面 index.ts import { RouteRecordRaw, createRouter, createWebHistory } from "vue-router"; import Layout from /layout/Index.vueconst routes: Array<RouteRecordRaw> [{path: /,name: home,comp…

【SpringCloud学习笔记】Elasticsearch

1. Elasticsearch 1.1 安装ES 启动Docker&#xff1a;service docker restart / systemctl restart docker基于Docker创建网络docker network create hm-net向云服务器上传elasticsearch以及kibana的tar包&#xff0c;并使用docker load -i xxx.tar进行加载使用如下命令启动e…

APD系列特高频局放监测装置

安科瑞电气股份有限公司 祁洁 15000363176 一、产品概述 现阶段&#xff0c;电力系统对于电能的质量提出越来越高的要求&#xff0c;不仅要确保供电稳定可靠&#xff0c;而且供电的安全性也是重要要求。电力系统中&#xff0c;金属封闭开关设备得到广泛应用&#xff0c;因…

【Git】修改设置 git 的 username、email

设置全局的本地用户名称和用户邮箱 参考&#xff1a;使用git config --global设置用户名和邮件 git config --global user.name "xxx" git config --global user.email "xxx.com"git config --list git config命令的–global参数&#xff0c;用了这个参数…

程序猿大战Python——流程控制——其他控制语句

for循环 目标&#xff1a;掌握for循环的使用。 与while循环功能类似&#xff0c;for语句也能完成反复多次的执行。 for语法&#xff1a; for 临时变量 in 序列:满足条件时&#xff0c;执行的代码1满足条件时&#xff0c;执行的代码2…… [else:当for循环正常执行结束后&#…

简单了解java中的异常

异常 1、异常的概述 1.1、概述 异常就是程序出现了不正常的情况&#xff0c;程序在执行过程中&#xff0c;数据导致程序不正常&#xff0c;最终导致JVM的非正常停止。语句错误不算在异常体系中。 1.2、异常的存在形式 异常有类型之分&#xff0c;比如我们比较熟悉的数组越…

Linux Kernel入门到精通系列讲解(RV-Kernel 篇) 5.3 从零移植 busybox,基于RISC-V

1. 概述 上一章节我们已经成功启动了Ubuntu,但是由于Ubuntu占用系统空间过大,所以我转向占用较小的busybox,预计就占用30M左右。 2. 源码下载 下载地址 3.编译busybox 在上一章节中,我们就提到了kernel在启动时会去初始化rootfs,具体为下列四个脚本,如果我们不去写这四…