windows和linux操作Git(序章2)

Git 分布式版本控制系统(序章1)

## Linux 下安装 Git🔺

## Git命令大全🔺

windows和linux通用

安装完 Git 后,需要进行配置,如姓名、Email 等

git config --global user.name "你的名字"git config --global user.email 你的邮箱名@主机名.域名

# 例如

git config --global user.name "San Zhang"git config --global user.email san-zhang@outlook.com

设置 Git 默认使用的文本编辑器,一般可能会是 Vi 或者 Vim。如果你有其他偏好,可以进行重新设置:

git config --global core.editor 文本编辑器名字

还有一个比较常用的是,在解决合并冲突时使用哪种差异分析工具。

git config --global merge.tool 分析工具名字

要检查已有的配置信息,可以使用 git config --list 命令:。有时候会看到重复的变量名,那就说明它们来自不同的配置文件(比如 /etc/gitconfig 和~/.gitconfig),不过最终 Git 实际采用的是最后一个。也可以直接查阅某个环境变量的设定,只要把特定的名字跟在后面即可,像这样:

git config user.name

## Git 创建仓库🔺

1.首先用Git Bash打开D盘

$ cd D:

2.在D盘中创建一个目录

(空文件夹)MyGit

$ mkdir learngit

3. 打开创建的空目录

输入pwd可以查看当前目录的地址可以发现,目录位于D盘下的MyGit文件

$ pwd

4.把目录变成可以管理的仓库

$ git init

这样仓库就建好了,此时可以发现learngit中多了一个.git它就是用来跟踪和管理仓库中的文件。

## 仓库中添加文件🔺

git可以跟踪文本文件的改动,比如txt,代码等,会告知你在第几行添加了什么文字,在第几行改动什么单词,但是git无法跟踪word文件,所以这里建议都使用VS code来作为文本记录工具。下载安装vs code,然后新建一个readme.txt文件并将其保存到learngit文件中去。

在readme文件中键入几句内容:

git is a version control system

git 是一个可以免费使用的软件

$ sudo apt git

vs code安装指南

VScode安装教程

把文件添加到仓库中

$ git add readme.txt

把文件提交到仓库中

$ git commit -m "wrote a readme file"

git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。

git commit命令执行成功后会告诉你,1 file changed:1个文件被改动(我们新添加的readme.txt文件);3 insertions:插入了两行内容(readme.txt有两行内容)。为什么Git添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件,比如:

$ git add file1.txt$ git add file2.txt $ git add file3.txt$ git commit -m "add 3 files."

 ## 查看修改文件内容🔺

接下来我们在vs code 中对readme文件进行内容的修改:

git is a version control system

git 是一个可以免费使用的软件,并且使用的人很多。

$ cd D:

然后运行:

$ git status

git status表示查看当前仓库的状态,git status告诉我们,将要被提交的修改包括readme.txt,下一步,就可以放心地提交了git commit。提交后,我们再用git status命令看看仓库的当前状态。

上面的命令输出告诉我们,readme.txt被修改过了(modified: readme.txt

),但还没有准备提交的修改(no changes added to commit)。虽然Git告诉我们readme.txt被修改了,但如果能看看具体修改了什么内容,自然是很好的。比如你休假两周从国外回来,第一天上班时,已经记不清上次怎么修改的readme.txt,所以,需要用git diff这个命令看看:

$ git diff readme.txt \\查看具体被修改的内容

git diff顾名思义就是查看difference,可以从上面的命令输出看到,我们原本的内容(红色字体),和修改后的内容(绿色字体)的对比。知道了对readme.txt作了什么修改后,再把它提交到仓库就放心多了。提交修改和提交新文件是一样的两步:

$ git add readme.txt$ git status$ git commit -m "add word and code"$ git status

现在我们已经学会了修改文件并将修改后的文件提交到Git库中。

 ## 检查修改次数、时间和修改人🔺

上述只是修改了一次,当我们对一个文件进行多次修改,并存到Git库中去。例如:当我们在修改一次readme的内容:

git is a version control system,that distributed

git 是一个可以免费使用的软,并且使用的人很多,用起来也方便

$ cd D:

在实际工作中,我们脑子里怎么可能记得一个几千行的文件每次都改了什么内容,不然要版本控制系统干什么。版本控制系统肯定有某个命令可以告诉我们历史记录,在Git中,我们用git log命令查看:

$ git log$ git log --pretty=oneline // 只显示修改

 ## 返回历史版本🔺

当我们感觉当前修改的版本不如历史版本的时候,我们想让readme文件回到上一步应该如何处理?

首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交cbd208f2ab81415a2315365c87a303982a4a4fae,上一个版本就是HEAD^, 对应的edaafe8159efb2dd00628dcc80c1a69c51ea38ca,网上100个版本写成HEAD~100。

$ git reset --hard HEAD^

那么现在问题来了,我感觉这个HEAD^的版本不如HEWD的版本好,我想回到刚才那个版本怎么办。如果命令窗口没关闭的话找HEAD对应的版本号。版本号是唯一的。例子中HEAD对应的版本号是cbd208f2ab81415a2315365c87a303982a4a4fae,取前几位就好了,Git会自己找。

$ git reset --hard cbd208

那么命令窗口被关闭咋办?

Git提供了一个命令git reflog可以记录你的每一次命令(版本号):

$ git reflog

还可以看见每一次的(commit)操作信息,然后再使用get reset指令就可以回来了。

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

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

相关文章

【C++对于C语言的扩充】C++与C语言的联系,命名空间、C++中的输入输出以及缺省参数

文章目录 🚀前言🚀C有何过C之处?🚀C中的关键字🚀命名空间✈️为什么要引入命名空间?✈️命名空间的定义✈️如何使用命名空间中的内容呢? 🚀C中的输入和输出✈️C标准库的命名空间✈…

蓝牙物联网灯控设计方案

蓝牙技术是当前应用最广泛的无线通信技术之一,工作在全球通用的 2.4GHZ 的ISM 频段。蓝牙的工作距离约为 100 米,具有一定的穿透性,没有方向限制。具有低成本、抗干扰能力强、传输质量高、低功耗等特点。蓝牙技术组网比较简单,无需…

MySQL Too many connections报错

MySQL 时不时出现Too many connections报错,重启MySQL就好了 但是过段时间又出现 一、解决方案: 1.修改mysql最大连接数 set global max_connections500; 以上是修改立即生效的,重启MySQL就会还原回去 在MySQL配置文件修改 max_connection…

UE蓝图 RPG动作游戏(一) day14

角色创建于增强输入系统与角色重定向 安装Blender插件部署骨骼 创建一个第三人称游戏模版在Mixamo网站下载个模型和骨骼 打开Blender快速重定向,我们需要在Blender里面安装一个插件auto_rig_pro-master:Auto-Rig Pro 是 Blender 的一个插件&#xff0…

掌握C++11标准库(STL):理解STL的核心概念

深入探索C11标准库STL:新特性和优化技巧 一、前言二、容器简介三、迭代器简介四、map与unordered_map(红黑树VS哈希表)4.1、map和unordered_map的差别4.2、优缺点以及适用处4.3、小结 五、总结 一、前言 STL定义了强大的、基于模板的、可复用…

边缘智能网关在智慧大棚上的应用突破物联网大关

边缘智能网关在智慧大棚上的应用,是现代农业技术的一大突破。通过与农作物生长模型的结合,边缘智能网关可以根据实时的环境数据和历史数据,预测农作物的生长趋势和产量,提供决策支持和优化方案。这对于农民来说,不仅可…

使用STM32 HAL库实现RS232串口通信的步骤和技巧

本文将介绍如何使用STM32 HAL库来实现RS232串口通信,包括步骤、API函数的调用方法和一些技巧。具体将讨论串口配置、发送和接收数据的方法,并提供相关示例代码。 引言: STM32 HAL库为嵌入式系统提供了简化和标准化的编程接口,方便…

Unity坦克大战开发全流程——结束场景——通关界面

结束场景——通关界面 就照着这样来拼 写代码 hideme不要忘了 修改上一节课中的代码

HCIP:rip综合实验

实验要求: 【R1-R2-R3-R4-R5运行RIPV2】 【R6-R7运行RIPV1】 1.使用合理IP地址规划网络,各自创建环回接口 2.R1创建环回 172.16.1.1/24 172.16.2.1/24 172.16.3.1/24 3.要求R3使用R2访问R1环回 4.加快网络收敛,减少路由条目数量,增…

5G随身WiFi避坑,5G随身WiFi口碑推荐,5G随身WiFi避雷,5G随身WiFi好用吗?

第一、切忌盲目入坑,目前市面上的主流随身 WiFi都是4G网络,不支持5G,当一些只卖几十块的随身WiFi,商家告诉你是5G随身WiFi的时候,直接拉黑。随身WiFi芯片都上百了,设备才几十块,怎么可能&#x…

5 个顶级的免费磁盘分区软件工具评测分享

磁盘分区可能是一个脆弱而复杂的过程,磁盘崩溃或用户设备受到病毒攻击的风险很高。因此,它们很难由用户单独或手动管理。本文详细介绍了可以帮助简化磁盘分区过程的不同软件工具、它们的功能和优点。那么让我们开始吧。 什么是磁盘分区工具?…

Apollo自动驾驶:改变交通运输的游戏规则

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 ChatGPT体验地址 文章目录 前言1. Apollo缓存层2. 本地状态管理库3. 离线同步和冲突解决4. 离线数据同步和离线优先策略结论 📲🔌 构建离线应用:Apollo…