当前位置: 首页 > news >正文

【Git使用学习】记录学习过程(1)

安装就省略了,安装结果如下。

Git Bash:这是一个模拟Linux环境的命令行工具,可以使用Git的所有功能。

Git GUI:这是一个图形化界面的工具,可以方便地执行Git的常用操作。

Git CMD:这是一个Windows命令行工具,可以使用Git的部分功能,但不支持一些特殊字符和命令。

Git FAQ:这是一个打开网页的快捷方式,可以访问Git官方文档中的gitfaq,提供了一些关于Git使用和配置的问题和答案。

Git Release Notes:这是一个打开文本文件的快捷方式,可以查看Git的版本更新历史和变化内容。

————————————————分割线——————————————

下面为笔者边学习边记录的过程。

在使用Git管理项目时,从开始菜单找到“Git”-》“Git Bash”。

在第一次使用git时,可以先配置用户信息,配置Git的用户名和邮箱。这个配置非常重要,每次git提交都会引用这两条信息,说明是谁提交了更新。

$ git config --global user.name "YZ"
$ git config --global user.email xxx@xx.com

通过cd跳到目标文件夹,同时可以创建测试文件夹(可以通过命令行创建也可以手动)

mkdir git_test
cd git_test

指令pwd能够显示当前目录

指令clear清除当前git窗口所有命令

好了,上述了解了前置需求,接下来就是创建git仓库。

使用git init来对当前文件夹进行初始化,将其变为git可以管理的仓库

git init

***路径后面的(master)指的是当前的分支名称【这个概念很重要,后续会进行介绍】***

这时候我们打开刚刚创建的文件夹,找到.git文件夹,如果看不见可能是被隐藏了,更改文件查看方式就可以找到。

上传文件

第一次更改:新建test.txt文件

文件创建完毕后,将其添加到仓库中。

git add test.txt

我想,既然是将文件添加到仓库中,那我能不能将文件随便在哪创建呢?于是我就在仓库地址外创建了文件。结果:

错误解释:

这是一个Git的错误信息,意思是您试图添加一个不在当前仓库中的文件。您需要将文件移动到仓库的目录下,或者切换到包含该文件的仓库,才能使用git add命令。

所以还是老老实实的在仓库地址创建文件,再次运行指令

添加成功。

当文件添加至仓库时,需要将文件再提交一下。(-m后面输入本次提交的说明)

git commit -m "第一次提交"

如果提交的备注写错了,也可以通过下面的指令修改提交的备注

git commit --amend

Git添加文件小结:

第一步是 git add,它将更改的文件添加到 Git 的“暂存区”中。暂存区是一个临时存储区域,用于暂时保存更改的文件,等待进一步的操作。通过执行 git add 命令,你将更改的文件添加到暂存区,让 Git 知道你希望将这些更改包含在下一次提交中。

第二步是 git commit,它将更改的文件从暂存区提交到本地代码库中。提交操作会生成一个新的提交对象,它包含了你所做的更改、提交的时间戳以及提交时的注释信息。通过执行 git commit 命令,你将暂存区中的更改永久保存到本地代码库中。

修改文件

对原文件test.txt进行更改

原文件

修改后

再次提交

git add test.txt
git commit -m "第一次修改文件"

查看历史记录

git log

最后一次记录为刚刚提交的【第一次修改文件】,仍有记录的是【第一次提交】,因为在第一次提交时对备注进行了更改,因此保留了更改后的结果。

这里出现的(HEAD->master),它表示当前所在的分支是 master 分支,并且 HEAD 指针指向了 master 分支的最新提交。

回退历史版本

git回退版本功能可以回滚到git仓库提交的任意时刻,首先通过‘git log’查看历史记录,找到需要回滚的提交对象的哈希值。

git log --oneline

接着,使用`git reset`进行回滚,在这里,我们回退至第一次提交版本

git reset --hard 5746e83

打开本地仓库下的文件,发现内容变为第一次提交内容。

此时再查看历史版本,只剩下一次了。

通过'git reflog'能够查看历史命令,找到之前所有的版本号,找到目标(修改文件)哈希值,执行回滚。

git reset --hard 4daf400

打开文件,变为修改后

http://www.lryc.cn/news/40008.html

相关文章:

  • K_A18_001 基于STM32等单片机采集MQ2传感参数串口与OLED0.96双显示
  • 【云原生·Docker】常用命令
  • 户外露营储能电源芯片CSU3AF10
  • 无线WiFi安全渗透与攻防(八)之WEP-Hirte渗透WEP加密
  • 前端常考面试题整理
  • 二十二、身份验证与权限
  • k8s pod 升级与回滚
  • 【Go】Go语言开发环境安装
  • el-switch使用
  • 【算法入门】字符串基础
  • 前端面试题 —— 浏览器原理(二)
  • 对于植物神经紊乱的治疗 中医采用辩证论治的方法
  • chatGPT之Python API启用上下文管理
  • 油田钻井实时在线监测系统
  • 经典PID控制算法原理以及优化思路
  • 经典面试题之赋值和深浅拷贝的区别
  • 电子取证的电脑配置有关问题,以我仅有的知识为大家建议一下。
  • 【基础算法】单链表的OJ练习(5) # 环形链表 # 环形链表II # 对环形链表II的解法给出证明(面试常问到)
  • MySQL 基础教程[13]
  • 个人练习-Leetcode-826. Most Profit Assigning Work
  • 云原生周刊:边缘计算会吞噬云吗?| 2023.3.13
  • python+django+vue图书个性化推荐系统
  • 经典文献阅读之--LIO-PPF(增量平面预拟合LIO)
  • ChatGPT背后有哪些关键技术?CSIG企业行带你一探究竟
  • C#基础之面向对象编程(二)
  • 蓝桥杯刷题冲刺 | 倒计时25天
  • c语言—动态内存管理
  • 请说明Ajax、Fetch、Axios三者的区别
  • 阿里p8测试总监,让我们用这份《测试用例规范》,再也没加班过
  • 【Unity】数据持久化路径Application.persistentDataPath