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

Git简介和常用命令

Git简介

Git是一款版本管理软件,可以在任何时间点保存文件,也能够恢复到以前任意时间点保存的文档,Git作用简单举例来说就是,写论文,有很多个版本,将原来的论文保存起来,新建一个副本,如果写错了,可以回退到之前的版本。

git安装

下载地址: https://git-scm.com/downloads

安装过程:傻瓜式安装,安装路径可以修改,但不要有中文

安装完成后,鼠标按住shift右键,会出现两个选项,Git GUI和Git Bash,点击Git Bash Here就可以打开命令行工具:

学习git就是学习git的基本命令

Git的基本操作

配置Git用户信息

配置提交人姓名:git config --global user.name 用户名

配置提交人邮箱: git config --global user.email 邮箱地址

查看git信息:git config --list(底部会显示提交人姓名和邮箱)

git的配置文件路径:C:\Users\用户名\.gitconfig(里面可以修改git信息)

git的工作流程

工作目录-暂存区-Git仓库

工作目录:自己的项目目录

暂存区:存放临时修改的文件,暂存区的数据只有一份,后提交的会覆盖之前提交的文件

git仓库:用来保存编号的项目程序,任何一个文件任何时间都可以保存,同一个文件有多份,都有自己的版本号

Git常用命令

第一步,先创建新的项目,这是项目文件

第二步,鼠标右键打开刚才安装好的open Git Bach here,打开命令行窗口,输入git init,项目文件就会多出一个.git文件

第三步:输入命令git status,可以查看文件状态,红色代表没有被git管理

第四步:将文件添加到暂存区,git add main.cpp,也可以批量添加,git add . 可以将所有文件添加到暂存区,这里需要注意我们不希望将.user文件也上传到git,所以需要在项目目录文件下创建一个文本文档.gitignore,也叫忽略清单在文本内输入*.user,即可,此时再次查看,就不会出现user文件名

输入git add .,这时候看到文件名变绿,new file代表文件已经增加到暂存区

最后一步,将文件上传提交到git仓库,命令是 git commit -m 日志

可以使用git log命令查看日志

修改文件后再次提交

在文件中添加一个按钮,然后再次使用git status查看,发现widget.cpp变红

所以需要再次上传到暂存区,查看状态,再上传到仓库,查看日志。

文件恢复

暂存区--->项目目录

使用暂存区的文件,覆盖当前项目中的文件,当在暂存区进行了一次提交后,之后继续写代码,如果发现写错了,需要恢复成暂存区时的代码

命令:git checkout

我们先将项目中的内容加个注释,然后传到暂存区

使用git add widget将当前版本上传到暂存区,使用git status查看状态,发现还没有被git管理

然后输入git checkout widget.cpp

此时Qt编辑器内会提示文件被修改过了,点击yes to all即可恢复到之前没有注释时的版本

点击后,此时的注释已经消失了,文件恢复到了之前的状态

git仓库----->项目目录(版本穿越)

上面提到的git log可以查看已有版本和版本id号,使用git reset --hard id可以从仓库恢复文件,仓库恢复文件会同时覆盖掉暂存区和项目目录的文件,同时,git log只能看到恢复到的版本号,之后的版本号无法看到

1 先使用 git log看一下之前提交的版本

2 要穿越到哪个版本就复制哪个版本号,此时我们恢复到最初的基础文件,使用git log查看,发现无法查看到之后的版本号了

如果需要穿越到其他版本,无法在命令行找到版本号,可以到文件内查看,之前目录生成的git文件内有一个logs文件夹,里面有一个HEAD文件,打开就可以看到所以的版本号

此时点击yes to all,就恢复到了最开始的状态

分支

分支概念

分支就是为项目创建多个副本,每个副本完成一个独立的工作,分支能够做到多件事情同时进行且互不影响。

上图中有一个master就是主分支,这个括号内表示的就是当前在哪个分支,主分支就是系统默认使用的分支,之前的示例都是在主分支上完成的,主分支会最终保存整个项目的完整代码,所以,开发分支的工作完成后,需要合并回到主分支。

开发分支:即为了完成猴哥功能模块开发而单独建立的副本,开发分支是基于主分支创建的,当然一个开发分支下,还能创建多个开发分支,形参父-子-孙结构

默认分支是在主分支上

分支命令

查看分支,git branch

创建分支:git branch 分支名,再使用git branch查看,发现多出一个users分支

切换分支,git checkout 分支名,会发现括号内变成了users

需要注意的是,当切换分支时,需要把暂存区的文件提交,否则会跟着切换到这条分支上,当再回到主分支,就看不到其他分支里面的文件了。

举例

在项目创建一个新的Users类

通过git status查看

将Users模块提交到users分支。

此时切换到主分支后,查看清空,git checkout master,会弹出这个框

点击close all后,会发现文件中没有user模块,同样再切回到Users分支后又会重新显示出来

合并分支

使用git merge 分支名即可合并分支,需要注意的是,合并分支需要再master主分支上

合并后在master分支下也可以看到User

删除分支

合并后即可删除分支 使用 git branch -d 分支名,此时如果没有合并则不允许删除,使用D可以强制删除分支,再次使用branch命令查看,发现子分支已经被删除了

临时存储分支

当某个分支在开发时,如果这个分支没有提交到仓库,是不允许进行分支切换的,此时可以进行临时存储。

将所有改动临时存储:git stash

将临时存储恢复 :git stash pop

在其他的分支中也能执行恢复改动,但是会把这些文件恢复到当前命令的分支,所以我们在恢复的时候需要注意,我们当时在哪个分支进行的开发

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

相关文章:

  • Windows安装Emscripten‌/emsdk(成功)
  • Python 数据分析与可视化 Day 6 - 可视化整合报告实战
  • Javaweb - 5 事件的绑定
  • 技术伦理之争:OpenAI陷抄袭风波,法院强制下架宣传视频
  • 自然语言处理入门
  • day041-web集群架构搭建
  • 软件设计模式选择、判断解析-1
  • 快速sincos算法,stm32测试
  • 用Rust写平衡三进制加法器
  • 【unitrix】 4.3 左移运算(<<)的实现(shl.rs)
  • 【WCF】单例模式的线程安全缓存管理器实现,给你的WebApi加入缓存吧
  • MyBatis Plus与P6Spy日志配置
  • leetcode230-二叉搜索树中第K小的元素
  • 【计算机网络】期末复习
  • 【教学类-89-08】20250624新年篇05——元宵节灯笼2CM黏贴边(倒置和正立数字 )
  • STM32学习笔记——中断控制
  • (C++)标准模板库(STL)相关介绍(C++教程)
  • C语言专题——关键字详解
  • 前端后端文件下载防抖实现方案
  • 浅谈开源在线客服系统与 APP 集成的技术方案与优劣势
  • 华为云Flexus+DeepSeek征文 | 基于华为云的 Dify-LLM 企业级 AI 开发平台部署指南
  • React Hooks详解
  • 开源跨平台的轻量 C# 编辑器
  • 想考华为HCIA-AI,应该怎么入门?
  • 第五课:大白话教你用K邻近算法做分类和回归
  • (三十六)深度解析领域特定语言(DSL)第七章——语法制导翻译——案例语义模型
  • 10-Python模块详解
  • wpa_supplicant连接到了路由,但是 udhcpc会分配到不同网段的ip,路由器ip为192.168.0网段,板子分配ip为192.168.1的网段
  • 美团小程序闪购 mtgsig1.2
  • Vue的学习内容和目标