126-Linux_git安装及使用

news2025/1/11 6:02:36

文章目录

  • 一.git基本概念
    • 1.什么是git
    • 2.git的特点
    • 3.git工作流程
    • 4.文件的四种状态
  • 二.git的安装
    • 1.在ubuntu上测试有没有安装
    • 2.使用命令 sudo apt install git 进行安装
    • 3.安装后查看版本,检查是否安装成功
  • 三.git的使用
    • 1.git常用命令
      • (1)创建一个目录
      • (2)使用git init 命令将其变为一个可以通过git管理的仓库
      • (3)使用git add filename 添加文件到暂存区
      • (4)使用git status 查看仓库状态
      • (5)使用 git commit -m "版本描述信息" 提交版本到仓库
      • (6)使用git log查看提交的历史记录
      • (7)使用git reflog 查看对仓库的操作日志
      • (8)使用git checkout filename 放弃对工作区代码的修改
      • (9)使用git reset HEAD filename 从暂存区撤销
      • (10)使用git rm filename 删除一个文件, 此时提交到暂存区,需要commit后才在版本库中删除
    • 2.gitt分支的操作命令
      • (1)查看分支: git branch
      • (2)创建分支: git branch 分支名
      • (3)切换分支: git checkout 分支名
      • (4)创建并切换到该分支: git checkout -b 分支名
      • (5)删除分支,不能删除当前所处分支,切换到其它分支再删除: git branch -d 分支名
      • (6)合并某个分支到当前分支: git merge 分支名
      • (7)历史记录一行显示 : git log --pretty=oneline
      • (8)以图表形式显示分支:git log --graph
      • (9)保护现场 git stash
      • (10)列出所有保存的现场信息 git stash list
    • 3.远程仓库操作

一.git基本概念

1.什么是git

Git是一款免费、开源的分布式版本控制系统,广泛应用于软件开发、协作与维护中。它最初由Linus Torvalds于2005年创造,旨在为Linux内核开发提供高效、可靠、易用的版本控制方案。
git本地有三个工作域:工作区(working directory), 暂存区(stage/index), 资源库(repository)。如果再算上远程服务器上的git仓库(remote directory)就可以分为四个工作域。其关系如下:
在这里插入图片描述

  • Workspace: 工作区,就是你平时存放项目代码的地方
  • Index / Stage: 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
  • Repository: 仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
  • Remote: 远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

2.git的特点

高效性:Git采用分布式版本控制系统,可以在本地进行版本控制和快速的提交、合并操作,极大地提高了开发效率。

可靠性:Git提供多种备份方案和错误恢复机制,即使遇到意外的中断或磁盘损坏等问题,也可以从备份中恢复数据。

灵活性:Git支持多种操作系统和平台,同时还允许用户自定义本地和远程仓库及代码管理方案。

安全性:Git支持多种加密和身份验证方式,可以保护代码和数据的安全性。

3.git工作流程

git工作的一般流程:

  1. 在工作目录中添加,修改文件
  2. 将需要进行版本管理的文件放入暂存区
  3. 将暂存区的文件提交到git仓库

4.文件的四种状态

  • Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.

  • Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件

  • Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过,返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改

  • Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致,文件为Unmodify状态. 执行git reset HEAD filename取消暂存,文件状态为Modified

二.git的安装

1.在ubuntu上测试有没有安装

在这里插入图片描述

2.使用命令 sudo apt install git 进行安装

在这里插入图片描述

3.安装后查看版本,检查是否安装成功

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

三.git的使用

1.git常用命令

(1)创建一个目录

在这里插入图片描述

(2)使用git init 命令将其变为一个可以通过git管理的仓库

在这里插入图片描述
注意事项:
第一次使用git命令提交代码之前,需要先设置用户名及邮箱,之后就不需要了:
在这里插入图片描述
其中 “you@126.com” 及"youname" 应替换为你后面使用的真实邮箱和名字。

(3)使用git add filename 添加文件到暂存区

在这里插入图片描述

(4)使用git status 查看仓库状态

在这里插入图片描述

(5)使用 git commit -m “版本描述信息” 提交版本到仓库

在这里插入图片描述

(6)使用git log查看提交的历史记录

在这里插入图片描述

(7)使用git reflog 查看对仓库的操作日志

在这里插入图片描述

(8)使用git checkout filename 放弃对工作区代码的修改

在这里插入图片描述

(9)使用git reset HEAD filename 从暂存区撤销

在这里插入图片描述

(10)使用git rm filename 删除一个文件, 此时提交到暂存区,需要commit后才在版本库中删除

在这里插入图片描述

2.gitt分支的操作命令

在进行多个并行作业时,通常会用到分支。

(1)查看分支: git branch

在这里插入图片描述

(2)创建分支: git branch 分支名

在这里插入图片描述

(3)切换分支: git checkout 分支名

![(https://img-blog.csdnimg.cn/2a84f0cb74a246fe917c1364322155a9.png)

(4)创建并切换到该分支: git checkout -b 分支名

在这里插入图片描述

(5)删除分支,不能删除当前所处分支,切换到其它分支再删除: git branch -d 分支名

在这里插入图片描述

(6)合并某个分支到当前分支: git merge 分支名

合并时可能产生冲突,需要解决冲突。
有时需要禁止快速合并,可执行:git merge --no-ff -m ‘描述’ 分支名
在这里插入图片描述
在这里插入图片描述

(7)历史记录一行显示 : git log --pretty=oneline

在这里插入图片描述

(8)以图表形式显示分支:git log --graph

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

(9)保护现场 git stash

当前工作区有代码修改了,是不能切换到其他分支,可以先保存现场,再切换
在这里插入图片描述

(10)列出所有保存的现场信息 git stash list

在这里插入图片描述

3.远程仓库操作

(1)生成通信密钥:ssh-keygen -t rsa -C “su@126.com” ,生成的公钥在/home/stu/.ssh/下,如下图

在这里插入图片描述
(2)测试与github或者gitee(码云)有没有连通
测试github 的命令 :ssh -T git@github.com
在这里插入图片描述
测试gitee 也就是码云的命令 :
在这里插入图片描述
(3)克隆项目:git clone 项目地址
(4) 提交分支到远程仓库:git push origin 分支名
(5) 提交分支到远程仓库,并跟踪分支 :git push -u origin 分支名
(6) 拉取远程服务器上的分支更新到本地 :git pull origin 分支名

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

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

相关文章

Netty编程入门超级详细,有这篇就足够了

目录 前言一、简介二、为什么使用Netty2.1 NIO的缺点2.2 Netty的优点 三、架构图四、永远的Hello Word4.1引入Maven依赖4.2 创建服务端启动类4.3 创建服务端处理器4.4 创建客户端启动类4.5 创建客户端处理器4.6 测试 五、Netty的特性与重要组件5.1 taskQueue任务队列5.2 schedu…

MyBatis的CRUD

0-基础知识 id:唯一标识 type:映射的类型,支持别名 java里的命名规则是驼峰,而sql里面是下划线,如何对数据库表的字段起别名? 数据库表的字段名称和实体类的属性名称 不一样,则不能自动封装数据…

算法套路十五——最长公共子序列LCS

算法套路十五——最长公共子序列LCS 算法示例:LeetCode1143. 最长公共子序列 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串&am…

Windows系统配置Anaconda虚拟环境,并安装Numpy、Scipy和Matplotlib等模块方法

有些项目不是必须在Ubuntu系统下进行的,对大部分人来说更熟悉Window系统,且查阅电脑中相关文件和使用微信更方便,因此记录一下Windows系统配置Anaconda虚拟环境步骤和安装Numpy、Scipy及Matplotlib等模块方法。 一、Anaconda安装 Anaconda可以…

异步电机速度估计-模型参考自适应MRAS法(补充)

导读:前期文章已经介绍过模型参考自适应MRAS进行速度估计的方法,本期文章主要是对MRAS实现的细节做一下补充。 若需要文章的仿真模型,关注微信公众号:浅谈电机控制,获取。 一、MRAS知识点回顾 1.1 基本原理 MRAS 模…

Calico的BGP打通Kubernetes网络和局域网

1、项目背景 随着云原生技术的不断发展,容器化应用已成为企业构建云原生架构的重要方式。而随着集群规模不断扩大,跨主机通信的需求也越来越重要。在 Kubernetes 集群中,Pod 是最小的调度和管理单位,而网络也是 Kubernetes 中最重…

双链表——“数据结构与算法”

各位CSDN的uu们你们好呀,今天,小雅兰又回来了,到了好久没有更新的数据结构与算法专栏,最近确实发现自己有很多不足,需要学习的内容也有很多,所以之后更新文章可能不会像之前那种一天一篇或者一天两篇啦&…

浅谈 Node.js

Node.js 是什么? Node.js 是一个开源、跨平台的 JavaScript 运行时环境。 官网:https://nodejs.org/zh-cn 更多精彩内容,请微信搜索“前端爱好者“, 戳我 查看 。 Node.js ≠ JavaScript Node.js中,没有BOM和DOM。…

【LLM】LangChain基础使用(构建LLM应用)

note LangChain应用开发框架,支持python和typescript语言;可以帮助生成prompt模板,并通过代理充当其他组件(如提示模板、其他大语言模型、外部数据和其他工具)的中央接口。LangChain可以直接与 OpenAI 的 text-davinc…

BGW协议(算数共享)

概述 BGW协议可以用于对域上包含加法、乘法、常数乘法门的算术电路求值,此协议强依赖Shamir秘密分享方案,利用其同态特性对各个秘密份额进行适当的处理,就可以在秘密值上进行安全计算。 加法门 算数加法共享(两方) …

c++ 友元介绍

友元的目的就是让一个函数或类访问另一个函数中的私有成员 友元函数 (1)普通函数作为友元函数 class 类名{friend 函数返回值类型 友元函数名(形参列表);//这个形参一般是此类的对象.... } 经过以上操作后,友元函数就可以访问此类中的私有…

Vue最新快速上手教程(狂神)

文章目录 前端核心分析1. 第一个Vue程序2. Vue基本语法3. Vue绑定事件4. Vue双向绑定5. 组件讲解6. Axios异步通信7. 计算属性8. 插槽slot9. 自定义事件内容分发10. 第一个vue-cli程序11. webpack学习使用12. vue-router路由13. vueelementUI14. 路由嵌套15. 参数传递及重定向1…

【JAVA】黑马程序员JAVA教程笔记 基础篇 Day 1

常用命令行DOS命令 Path环境变量 用途 1. 可以理解为系统中的一个大管家,记录了很多软件的完整路径。 2. 将常用的软件都交给Path环境变量,便于用命令行打开。 设置步骤 复制要使用的软件的存储地址右键点击 此电脑,打开属性点击 高级系统…

【2023最新】几乎涵盖你需要的Android性能优化的所有操作

前言 现如今,Android开发在市面上的需求不再像以前一样一人难求,僧多认识的情况直接导致整个行业对Android开发岗位的要求越来越高,Android 开发越来越规范,间接导致项目对质量要求的提升。启动优化、内存优化、App 崩溃监控等性…

【网络安全CTF】BUUCTF(Basic篇)

Linux Labs 解题思路:已给用户名密码,直接用ssh工具连接即可获取flag 查找flag在跟下 提交完成。 BUU LFI COURSE 1 访问链接:为php代码审计题,看题目要求构造GET请求读取文件 http://9a7d4988-99f9-4c29-88d8-600e19887723.n…

三极管知识大全

一、三极管的使用 一般可以当做开关管来使用,也可以利用三极管的放大特性,来搭建恒流源,恒压源等等, 三极管当做开关管来使用的话,三极管输出的是高、低、高、低的方波信号 BUCK电源的开关频率在65KHz,也…

【刷题笔记】另类加法+走方格的方案数

一、另类加法 题目: 牛客网链接:另类加法_牛客题霸_牛客网 描述 给定两个int A和B。编写一个函数返回AB的值,但不得使用或其他算数运算符。 测试样例:1,3 返回:4 解析: 因为无法使用算数运算符…

网易云音乐开发--完善video模块

解决多个视频同时播放问题 老样子,npm start开启服务器 说一下问题 现在打开多个视频会让他,同时播放,相当的吵闹。我们只需要一次只有一个视频播放 看文档,我们的思路是点击这个视频,关闭上次视频 我们传入这个id …

shell脚本语言

# 编写一个名为myfirstshell.sh的脚本,它包括以下内容。 #!/bin/bash# 1、包含一段注释,列出您的姓名、脚本的名称和编写这个脚本的目的 # 杨轩 # myfirstshell.sh # 脚本命令的练习# 2、和当前用户说“hello 用户名” echo "hello xuan"# 3、…

Vue生命周期函数执行顺序(使用注意事项)

文章目录 beforeCreatecreatedbeforeMountmountedbeforeUpdateupdatedbeforeDestroydestroyed Vue.js 是一个基于 MVVM 模式的前端框架,它的核心是一个响应式的数据绑定系统。在 Vue.js 中,组件是一个可复用的 Vue 实例,它拥有自己的生命周期…