Ubuntu 20.04 中 Git 的安装、配置和基本操作指南


本文为经验 所谈 使用版本为ubuntu20.04


1 ubuntu的git初始化

1.安装git
sudo apt-get install git
可通过git --version 命令查看,正常输出git版本号即安装成功。
2.配置用户名和邮箱名

git config --global user.name "Your Name"
git config --global user.email "email@example.com"

配置完后可以通过以下命令查看

git config user.name
git config user.email 

3.创建ssh公钥
创建公钥文件,生成的公钥文件会保存在本机的~/.ssh目录下
ssh-keygen -C 'example@example.com' -t rsa
在这里插入图片描述
出现的第一个代表储存位置(你也可以直接按回车 直接省事到底)
4 .拿出公钥填入GitHub

cd ~/.ssh
cat id_rsa.pub
#默认储存位置

复制即可
github部分请添加图片描述

点击个人设置,即右上角 然后个人设置 粘贴即可

将刚才保存的id_rsa.pub文件内容复制到Key字段,Title自己起个名字,最好是能代表当前所配置的机器的名字。然后点Add SSH key,会要求输入当前github账号的密码,按要求输入就行了。

2 git本地操作

2.1添加文件

1 创建仓库并初始化
仓库(repository)也叫版本库,可以看做一个目录,这个目录里的所以文件都由Git进行管理,每个文件的修改、删除,Git都能跟踪

  • 1.打开你的项目文件
  • 2 输入git init

会输出Initialized empty Git repository in /home/ps/JJ_Projects/learnGit/.git/,表示成功初始化git仓库。
这时会发现该目录中多出了一个.git目录,这就是git来跟踪管理版本库的

2.添加文件
以readme做例子
1.readme.md
我们首先创建一个README文件,并写入一些内容:

touch readme.md
vim readme.md#自己随便写点cat readme.md # 查看文件内容

2.执行git add命令,将文件添加的仓库。
git add README.txt

3 执行git commit命令,将文件提交的仓库。

git commit -m "Submit a new file." # 双引号内是本次提交的注释,原则上可以随便写,但是尽量能表达出本次提交的改动。-m -m 参数后面跟着的是提交信息,描述你所做的更改
输出
master (root-commit) 7e21c1f] Submit a new file.
1 file changed, 1 insertion(+)
create mode 100644 README.tx

2.2 修改文件

1.修改文件内容‘
vim readme.md
2.查看仓库状态
git status

On branch master
Changes not staged for commit:
(use “git add …” to update what will be committed)
(use “git restore …” to discard changes in working directory)
modified: readme.md
意思很明显:README.txt文件提劲被修改过了,但是现在还没有改动需要git submit,因为要先git add。

3 查看文件改动
git diff
4 就像上面一样添加到本地仓库

2.4 版本回退

使用git进行版本控制,重要的用途之一就是进行版本回退了,我们来看一下怎样操作。
1.我们先使用git log命令来查看一下仓库的修改日志
2.使用git reset命令,将版本回退

git reset --hard HEAD^ # HEAD表示当前版本,HEAD^代表上一个版本
输出:
HEAD is now at 7e21c1f Submit a new file.

2.5工作区和暂存区

1.工作区(Working Directory),我们创建的learnGit 目录就是一个工作区。

  1. 版本库,仓库(Repository),工作区有个隐藏目录 .git ,这个不算工作区,而是 Git 的版本库。

3.版本库里面的 index(stage) 文件叫暂存区,还有Git为我们自动创建的第一个分支 master ,以及指向 master 的一个指针叫做 HEAD。
请添加图片描述
关系
前面我们提到过,如果我们想把文件添加到Git里面时,需要分两步:

第一步是用 git add 把文件添加进去,实际上就是把文件修改添加到暂存区。

第二步是用 git commit 提交更改,实际上就是把暂存区的所有内容提交到当前分支。(我们现在只有唯一一个分支 master,所以现在就是往 master 分支上提交

2.6 删除文件与恢复

  1. 我们先准备一个待删除的文件test.txt,并add、commit到仓库,
touch test.txt
vim test.txt		# 添加内容 delete test
git add test.txt
git commit -m "delete test"
# 输出:
[master 08ffedc] delete test1 file changed, 1 insertion(+)create mode 100644 test.txt

2.工作区中直接删除test.py
rm test.py

这时有两种情况:

  • (1) 工作区中误删文件,需要恢复

  • (2) 确实要删除文件,应该把删除操作提交到仓库

3.工作区中误删文件,需要恢复

这种情况其实与上面的撤销修改情况1是一样的,要将工作区的动作撤销掉,而这在我们的仓库中还是存在的,所以还是要请出我们的checkout命令就好了。

git checkout -- test.txt
ls
# 输出:
README.txt  test.txt

4.确实要删除文件,应该把删除操作提交到仓库
我们先把刚刚恢复的test.txt再从工作区删掉。
rm test.txt
既然我们确实要删掉该文件,就直接再用git rm删除:

git rm test.py
# 输出:
rm 'test.txt'

再将删除操作提交到仓库:

git commit -m "delete test"
# 输出:
[master 9182ef7] delete test1 file changed, 1 deletion(-)delete mode 100644 test.txt

这个发现误删可以用版本回退

3 github远程操作

1.添加远程仓库
在这里插入图片描述
就是ssh下面的网址
git remote add origin <你的网址>
通过一下命令查看远程仓库是否被添加
git remote -v
2.提交仓库
git push -u origin master

因为远程库是空的,所以我们在第一次推送 master 分支时,要加上 -u 参数,Git不但会把本地的master 分支内容推送的远程新的 master 分支,还会把本地的 master 分支和远程的 master 分支关联起来,在以后的推送或者拉取时就可以简化命令。
3.输入和令牌
在这里插入图片描述
提交的时候会输入令牌和用户名
假如你是仓库所有者 你直接用自己的用户名 和去创建令牌
1.个人设置的开发者设置
在这里插入图片描述

2.点击tokens(classic)在这里插入图片描述
3.生成令牌
在这里插入图片描述
选下面哪个 勾选repo 一定要保存(只出现一次) 你提交的时候要验证

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

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

相关文章

conda 激活环境vscode的Bash窗口

多份conda环境注意事项&#xff0c;当时安装了两个conda环境&#xff0c;miniconda和conda&#xff0c;导致环境总是冲突矛盾。初始化时需要更加注意。 $ C:/Users/a_hal/miniconda3/Scripts/conda.exe init bash能够显示用哪里的conda环境命令执行。 然后直接conda activate…

Mac下小智AI本地环境部署

可以进行聊天、编写程序、播放歌曲等等的小智语音聊天小助手&#xff0c;在Mac环境下修改源代码&#xff0c;值得拥有。本篇内容主要讲解Mac下环境的搭建&#xff0c;WebSocket的修改。注&#xff1a;环境python3.12.0、ESP-IDF5.4.0、开发板ESP32S3。 目录 1.Git安装2.Python…

Linux安装Cmake (Centos 7.9)

cmake安装 这个虽然已经更新到了4.0.0版本了&#xff0c;但是我们要用3.5版本的&#xff0c;因为这个比较稳定 官方地址&#xff1a;https://github.com/Kitware/CMake/releases/tag/v3.5.0&#xff0c;选择那个cmake-3.5.0-Linux-x86_64.tar.gz下载&#xff0c; 首先解压文…

基于 SpringBoot 的旧物置换网站

收藏关注不迷路&#xff01;&#xff01; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff08;免费咨询指导选题&#xff09;&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;希望帮助更多…

ELK 通过 logstash 收集单个/多个日志文件

一、收集单个日志文件 注意事项&#xff1a; logstah 服务默认启动用户和组是 logstash被收集的日志文件有读的权限并对写入的文件有写权限而 logstash 是普通用户 1.1 编辑 logstash 配置文件 vim /etc/logstash/conf.d/test.conf input {file {path > "/var/log/…

分享一个Drools规则引擎微服务Docker部署

通常我们都是把Drools作为嵌入式使用&#xff0c;但在微服务泛滥时代&#xff0c;还在老套的嵌入式显然不符合微服务架构要求&#xff0c;本文分享一个把Drools作为微服务独立部署的方案。 本方案基于Drools引擎微服务&#xff0c;提供REST接口。 1、可以动态部署Drools规则2…

Mac 本地化部署 dify

Macbook 本地化部署 dify 目录 Macbook 本地化部署 dify安装dockerdocker下载地址 安装dify下载dify到本地github可能遇到的问题: github打开超时在本地解压dify.zip文件本地化部署docker部署可能遇到的问题: 部署超时登录体验 dify 安装docker docker下载地址 根据电脑芯片选…

串口中断接收与环形缓冲实例(apollo3 blue plus)

#define DEV_UART1 1 #define GPS_POWER_PIN 13 #define GPS_LOG_ENABLE 1 #define MAX_UART1_SIZE 1024 #define AM_BSP_GPIO_COM_UART1_TX 8 #define AM_BSP_GPIO_COM_UART1_RX 9 // 定义环形缓冲区结构 typed…

操作系统高频(五)linux命令

操作系统高频&#xff08;五&#xff09;linux命令 1.Linux中查看进程运行状态的指令、tar解压文件的参数。⭐⭐⭐ 在Linux中&#xff0c;可以使用以下指令查看进程的运行状态&#xff1a; top&#xff1a; 用于实时监视系统的进程活动和系统资源使用情况。在终端中运行top…

Spring Boot 快速入手

前言&#xff1a;为什么选择 Spring Boot&#xff1f; &#x1f680; 在现代 Java 开发中&#xff0c;Spring Boot 已成为最流行的后端框架之一。无论是小型 Web 应用、企业级系统&#xff0c;还是微服务架构&#xff0c;Spring Boot 都能提供快速开发、自动配置、轻量级部署的…

oracle-blob导出,在ob导入失败

导出&#xff1a; [oraclelncs dmp]$ /home/oracle/sqluldr2 gistar/res#pwd192.168.205.58:1521/lndb query"select * from an_odn_picture where length(PIC_CONTENT)<25000" filean_odn_picture.csv Charsetutf8 textCSV 0 rows exported at 2025-…

RK3568 pinctrl内容讲解

文章目录 一、pinctrl的概念`pinctrl` 的作用设备树中的 `pinctrl` 节点典型的 `pinctrl` 节点结构例子`pinctrl` 的重要性总结二、RK3568的pinctrl讲解1. `pinctrl` 节点2. `gpio0` 至 `gpio4` 子节点每个 `gpioX` 子节点的结构和作用3. `gpio1` 到 `gpio4` 子节点总结1. `aco…

北京南文观点:后糖酒会营销,以战略传播重构品牌信心坐标

第112届全国糖酒会落下帷幕&#xff0c;参展品牌面临一个关键命题。如何在流量洪流中沉淀品牌价值&#xff1f;北京南文&#xff08;全称&#xff1a;南文乐园科技文化&#xff08;北京&#xff09;有限公司&#xff09;认为&#xff0c;糖酒会的结束恰是算法时代品牌认知战的真…

html5时钟升级!支持切换深浅模式 Canvas实现现代化动态时钟

HTML5 Canvas实现现代化动态时钟 这里写目录标题 HTML5 Canvas实现现代化动态时钟项目介绍技术实现1. 项目架构2. Canvas绘图实现2.1 表盘绘制2.2 刻度绘制2.3 指针绘制 3. 动画效果4. 主题切换 项目亮点技术要点总结项目收获改进方向结语 项目介绍 本项目使用HTML5 Canvas技术…

《SRv6 网络编程:开启IP网络新时代》第2章、第3章:SRv6基本原理和基础协议

背景 根据工作要求、本人掌握的知识情况&#xff0c;仅针对《SRv6 网络编程&#xff1a;开启IP网络新时代》书籍中涉及的部分知识点进行总结梳理&#xff0c;并与工作小组进行分享&#xff0c;不涉及对原作的逐字搬运。 问题 组内同事提出的问题&#xff1a;本文缺扩展头描述…

卫星电话究竟是“锦上添花”?还是“刚需之选”?

在万物互联的时代浪潮中&#xff0c;卫星电话究竟是可有可无的“锦上添花”&#xff0c;还是至关重要的“刚需之选”&#xff1f;随着通信技术的持续进步与应用场景的日益拓展&#xff0c;这一问题的答案正逐渐明晰。 在5G基站覆盖99%行政村的今天&#xff0c;人类依然要直面自…

C语言复习笔记--指针(1)

今天我们进入指针的复习了.这部分有很多知识,话不多说,让我们进入指针的世界吧. 内存和地址 要想学指针就不能不学内存和地址. 内存 其中&#xff0c;每个内存单元&#xff0c;相当于⼀个学⽣宿舍&#xff0c;⼀ 个字节空间⾥⾯能放8个⽐特位&#xff0c;就好⽐同学们 住的⼋⼈…

【蓝桥杯每日一题】4.1

&#x1f3dd;️专栏&#xff1a; 【蓝桥杯备篇】 &#x1f305;主页&#xff1a; f狐o狸x "今日秃头刷题&#xff0c;明日荣耀加冕&#xff01;" 今天我们来练习二分算法 不熟悉二分算法的朋友可以看&#xff1a;【C语言刷怪篇】二分法_编程解决算术问题-CSDN博客 …

【设计模式】过滤器模式

过滤器顾名思义&#xff0c;定义一些过滤规则&#xff0c;将符合要求的内容筛选&#xff0c;就比如过滤不同大小或者不同颜色的水果&#xff0c;需要颜色和大小过滤器&#xff0c;筛选条件独立为对象&#xff0c;可以通过灵活组合形成过滤链条。避免大量使用判断语句。 案例代…

STM32 CAN学习(一)

CAN总线应用最多的是汽车领域。 CAN&#xff08;Controller Area Network&#xff09;控制器 局域 网 局域网&#xff1a;把几台电脑连接到一台路由器上&#xff0c;这几台电脑就可以进行通讯了。 控制器在汽车中的专业术语叫做ECU&#xff08;Electronic Control Unit&…