Git使用详细教程
1. cmd面板的常用命令
- clear:清屏
- cd 文件夹名称----进入文件夹
- cd … 进入上一级目录(两个点)
- dir 查看当前目录下的文件和文件夹(全拼:directory)
- Is 查看当前目录下的文件和文件夹
- touch 文件名----创建文件
- echo 内容 > 创建文件名----创建文件并写入内容
- rm 文件名----删除文件
- mkdir 文件夹名称----创建文件夹 mk:make
- rmdir 文件夹名称----删除文件夹 rm:remove
- cat 文件名----查看文件内容 :cat .git/HEAD
- cat 1.txt >> 2.txt 将文件1.txt内容写入到2.txt
2. VIM常用命令
- i 表示编辑模式
- esc键 表示退出编辑模式
- :wq! 表示保存文件并关闭文件
- vim 文件名 打开文件
git的流程图
3. Git和GitHub基础操作(参考资料)
git入门
git常用命令大全
git原理及使用
git工作开发流程
Git Code Review设置与使用
腾讯工工蜂使用文档
4. git安装
1.在终端,检查git是否安装
git --version
2.没有安装的话去,官网,下载git
3.一直点下一步即可
4.安装后在终端检查git是否安装好
5.设置用户名和邮件地址(最好和GitHub的用户名/邮箱保持一致)
git config --global user.name “自己的用户名”
git config --global user.email “自己的邮箱”
#检查是否配置成功
git config --global --list
5. git工作流程图
6. 仓库的概念以及如何创建
概念:仓库是源代码的管理中心,每一个项目都会存入对应的仓库,该仓库会对源代码进行管理以及对项目进度进行管理
创建仓库:
1.登录GitHub
2.登录后,页面右上角点击头像
3.进入仓库首页,在右上角点击new按钮
4.进入新仓库创建页面(仓库命名要求:不能使用中文 ,不能使用大写字母 ,复杂名称使用中横线连接)
7. 如何上传代码到GitHub
1.在本地创建项目文件夹test-demo
2.在test-demo文件夹下,创建demo.html/demo.css/demo.js
3.在根目录下,创建.gitignore文件,用于设置忽略文件,不需要git管理的文件
#直接书写需要被忽略的文件名或者文件夹名称
1.txt
4.打开终端,进行git仓库初始化
git init
5.在终端,添加git仓库追踪文件
git add .
6.在终端,提交本地源代码到本地仓库
git commit -m “第一次提交git测试代码”
7.查看本地仓库状态
git status
8.通过https协议,将 本地仓库(在自己电脑上) 和 远程仓库(在github网站上) 进行连接
git remote add origin https://github.com/Ocean490724726/test-demo.git
#查看远程分支
git remote -v
#删除远程分支
git remote rm origin
9.将本地仓库代码 push到 远程仓库(此时可能提示输入用户名和密码:指的是github上的)
git push -u origin master
#以上完整写法:git push --set-upstream origin master:master
#表示1.将代码从本地下流master分支 推送到 远程上流分支master
#表示2:下流master和上流master建立连接,以后直接使用git push即可,默认推送到上流master分支
第一次push之后,输入远程仓库的用户名和密码提示(之后就不会提醒了)
代码push远程仓库成功提示
8. 如何将远程仓库代码拉到本地
1.克隆
git clone 远程仓库地址 【本地仓库名称】
git clone https://git.code.tencent.com/git-class-001/git-test.git
9.独自使用git的基本操作
查看提交记录
- git status 查看当前分支状态
- git log 查看当前提交记录
- 结束git log命令:英文状态下按Q就可以了
10.想要修改项目中的文件时,如何进行操作?
1.查看当前分支状态
2.根据两种情况:
如果都在工作区,未被追踪,
或者有些在工作区,有些在暂存区(add了)
git add .3.此时都在暂存区
git commit -m “”
4.如果都在本地仓库
git push -u origin master
11.删除不需要的文件时,如何操作
1.查看当前分支状态
git status
2.手动删除或者命令行删除文件
#手动删除:
命名行删除文件,可以直接进入git commit -m “”
git rm 文件名3.查看当前分支状态
git status
4.追踪修改(命令行删除文件可以跳过该步骤)
git add .
5.查看当前分支状态
git status
6.提交修改
git commit -m “”
7.查看当前分支状态
git status
12.想要给文件重命名时,如何操作?
手动重命名
1.查看分支状态
git status
2.删除重命名前的文件名
git rm test1.html
3.追踪重命名后的文件名
git add demo.html
4.查看状态
git status
5.提交
git commit -m “手动重命名”
6.查看提交记录
git log
——————————————————————————————————
命令行重命名(推荐)1.重命名
git mv 原文件名 新文件名
git mv demo.html test1.html2.查看状态
git status
3.提交
git commit -m “命令行重命名”
4.查看提交记录
git log
13.想要移动文件到其他位置时候,如何操作
移动文件,并重命名
1.查看状态
git status
2.移动文件,并重命名
git mv 原文件名称 文件夹名/新文件名
git mv ./test2.html ./home/home2.html3.查看状态
git status
4.提交
git commit -m “移动文件,并重命名”
5.查看状态和提交记录
git status
git log
//结束查看log
q
14. 独自使用git的常见问题及解决方法
文件有变化时,如何查看文件前后变化
方式一:1.查看指定文件的所有被修改记录
git log --pretty=oneline home/home2.html
2.根据上面返回的commitId,查看某一次修改详情
#git show 上面获取的commitid
git show c1b64f1eb07c3a024957156fc7590fda7676996d方式二:直接查看
git log -p home/home2.html
q
15.操作失误的情况下,如何实现一键还原到上一次提交状态
所有修改文件都是工作区状态下,撤销修改操作,一键还原
1.查看当前文件状态
git status
2.一键还原操作失误文件
git checkout – 文件名
git checkout – * 一键还原所有文件的操作
git checkout – test.html test3.html home/test1.html
16. 不再追踪时如何实现撤销追踪操作
当文件已经被add了,处于暂存区,撤销追踪操作
1.查看当前文件状态
git status
2.撤销追踪操作
git reset HEAD 文件名
git reset HEAD test3.html
本次add的文件撤销到工作区
git reset HEAD *3.一键还原到上次提交状态
git checkout – test3.html
17. 想要回到上一版本或者指定版本时如何进行操作
1.在根目录下,创建version.html 和 v.html两个文件,添加内容(h1 版本1 /h1)视为”版本1“,并提交
git add .
git commit -m “版本1”
git status
git log --pretty=oneline2.将内容改为“版本2”,追踪并提交
git commit -am “版本2”
git status
git log --pretty=oneline
执行git commit -am "提交描述"即可将add和commit操作合并, 不需要先git add file 再 git commit -m “提交描述” 了3.按照第二步骤,继续提交版本3,版本4,版本5
不要忘记修改h1标签里的内容
4.查看所有历史记录
git log --pretty=oneline
5.回到上一版本,已经提交,没有push
#git reset --soft 上一个commitID 撤销commit
git reset --soft 版本4的commitID # 撤销版本5的commit
#git reset --mixed 上一个commitID 两个动作
git reset --mixed 版本4的commitID 撤销版本5的commit和add两个动作
#撤销并舍弃版本号之后的所有提交记录,使用需要谨慎!!!
#撤销后,工作区是版本4的代码,版本5丢失了,谨慎使用!!!
git reset --hard HEAD^
#回到上两个版本
git reset --hard HEAD^^
#回到上三个版本
git reset --hard HEAD~3
#方式二:通过commit id的前7位,回到指定版本(往前/往后都可以)
git reset --hard 4732336.已经提交,且push
#由于远程仓库版本号为版本5 低于 本地仓库版本4 ,不需要push,拒绝push
git reset --hard 版本4的commitID
#撤销,但是保存了提交记录
git revert 当前的版本5的commitID # commitID是最新提交的commitID,
#再进行push到远程仓库
git push7.查看当前状态
git status
累了,明天再更新
相关文章:
国芯科技产品系列
国芯科技产品系列 GX8003 高性能离线语音识别芯片 产品简介 GX8003是面向离线语音识别市场推出的高性能低成本SoC芯片。它集成了国芯第二代神经网络处理器 gxNPU V200,集成音频ADC、DAC,内置晶振和Flash。芯片支持高性能的语音唤醒,和自定义的离线语音指令识别。具有识别率高…...
类的特殊成员函数编写示例
使用 (copy|move) & swap 方式 没有处理自赋值 无父类示例 class Widget { public:Widget() {this->x = new int;std::cout << (this) << " ";std::cout << "Constructor called" << std::endl;}Widget(const Widget& …...
10日冲刺第九天
1...
webapi添加添加websocket中间件
添加位置 我按照MSDN的例子添加了一个复述客户端响应的中间件。需要注意的时,中间件采用那种方式添加,添加在哪。哪种方式 我选择创建一条管道分支,只要时ws的连接请求,就转到这个分支 因此,我们需要使用的是MapWhen()来创建管道分支。 添加在哪 要注意授权的问题,所以应…...
CF1011E.Border-裴蜀定理
link:https://codeforces.com/contest/1011/problem/E 题意绕来绕去的不讲人话,看了半天。 翻译过来就是,给 \(a_1,\dots,a_n\) ,和一个数 \(k\),求所有的 \(d\) 满足:存在某个 \(a_1,\dots,a_n\) 的线性组合 \(\sum a_i w_i\) 在模 \(k\) 意义下恰为 \(d\). \(1\leq n,k…...
如何解决DA14531编译工程出现大量报错的问题
在编译DA14531某个工程时,在这台电脑可以编译,另外一台电脑就编译不过,出现很多错误问题。那要怎样处理呢? 建议安装新MDK版本 可能是MDK版本问题,在不同的电脑安装不同的MDK版本,用新的版本可以编译通过&…...
Git使用详细教程
1. cmd面板的常用命令 clear:清屏cd 文件夹名称----进入文件夹cd … 进入上一级目录(两个点)dir 查看当前目录下的文件和文件夹(全拼:directory)Is 查看当前目录下的文件和文件夹touch 文件名----创建文件echo 内容 > 创建文件名----创建文件并写入内容rm 文件名…...
11月新书预告——GNN、深度学习和元宇宙
11月的新书聚焦AI的前沿主题——GNN,另外,还有两本重磅的深度学习好书,也不乏元宇宙、智能驾驶和硬件产品经理等全新技术主题的好书。 1. 图神经网络:基础、前沿与应用 吴凌飞 崔鹏 裴健 赵亮 编著 张钹、韩家炜、…...
YOLOv5 PyQt5 | PyQt5快速入门 | 2/3
YOLOv5 PyQt5 快速入门 2/3 文章目录 YOLOv5 PyQt5 快速入门 2/31. 设计页面2. PyQt5 打开图片3. PyQt5 打开视频4. PyQt5 打开摄像头源码1. 设计页面 首先我们利用QtDesigner来设计一个页面。这个页面比较简单,包含三个PushButton、两个GroupBox、两个Textlabel。 设计好后我…...
Java为什么吧String设计为不可变类?
文章目录那么为什么要这么设计呢?防止被篡改,保证信息数据的安全性不变的对象和值是线程安全的哈希值的唯一性来挺好性能提高常量池的可用性在Java中String类由final修饰,所以不能被继承。被final修饰主要是为了让String成为一个不可变类因为…...
【javaEE】多线程进阶(Part1 锁策略、CAS、synchronized )
目录前言/补充4. 描述一下线程池的执行流程和拒绝策略有哪些?【面试题!】一、常见锁策略一)乐观锁VS悲观锁二)读写锁VS普通互斥锁三)重量级锁VS轻量级锁四)自旋锁VS挂起等待锁五)公平锁VS非公平…...
deepin(深度)系统下qt5.12.0的程序打包发布到linux云服务器上
做项目时要求,要求做一个用于QT客户端更新提供更新的服务器,服务器弄好啦,要测试一下,在发布时,发现了一些问题,在此记录一下。 这个打包和我的前一篇博客步骤一样,打包可参考https://blog.csd…...
精读大型网站架构:前端架构模块化的方法及困境,自研框架Trick
模块化的方法 网页和网页之间有很多相似或者相同的模块,模块化就是把这些模块抽离并独立管理。而模块化的方法,就是把模块的HTML、CSS和JavaScript文件独立出来,然后通过某种方法关联到使用这些模块的网页上。 在介绍模块化的具体方法之前&…...
用Python实现的这五个小游戏,你真的学会了嘛?
游戏名称1、五子棋 2、雷霆战机 3、贪吃蛇 4、坦克大战 5、俄罗斯方块 开发环境 Python版本:3.6.4 相关模块: pygame模块; 以及一些Python自带的模块。 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可。 一&am…...
linux环境下查询主板、CPU、内存等硬件信息
文章目录前言dmidecode常用参数-t参数测试-q参数测试-s参数测试总结前言 如果是在windows系统下,查询电脑硬件会容易的多,可以通过电脑属性、计算机管理等多种图形化界面中查到,如果安装了各种电脑管家,那查询这类信息就更方便了…...
查看日志.
如果查看比较小的日志文件:cat xxx.log 一般常用:view xxx.log/vi xxx.log查找关键字,如“木叶”:编辑,/木叶,确定,然后按“n”键就能往下找。 如果想往上找,输入:$到最后一行&#…...
vue3 生命周期函数,都改了啥?
vue2到3常用生命周期钩子函数的变化 Ⅰ. 实例化 和 数据初始化 (beforeCreate,created > setup) 1. new Vue 从开始 > 结束 [vue2和3 、两版本区别处] vue2的写法> export default {beforeCreate(){console.log(vue的实例 还没ne…...
基于springboot的医院管理系统
项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里,你想解决的问题࿰…...
Django + Nginx https部署实战(第一辑)
WebServer和WebAPP 之前对于nginx的了解都只是听说,根本就不知道nginx对于整个网站的作用。经历了数个项目之后,我本人逐渐对nginx有了更深入的了解,也希望把这段经历拿出来分享给大家! 由于我本人之前接触的都是Python的Django…...
Pycharm+服务器运行代码
Pycharm服务器运行代码服务器的连接与Anaconda环境配置ssh连接安装Anaconda创建虚拟环境安装代码所需的库Pycharm上传代码到服务器服务器的连接与Anaconda环境配置 ssh连接 我使用的是MobaXterm,新建一个会话,选择SSH,输入主机IP地址自己的…...
【Spring】IDEAspring-mybatis的整合----关于配置文件的整合
文章目录spring-mybatis的整合过程步骤1.导包,spring的jar包,mybatis的jar包2.mybatis.xml配置3.spring-mybatis.xml配置4.dao、service层、代码测试spring-mybatis的整合过程步骤 1.导包,spring的jar包,mybatis的jar包 <!--统…...
ssm技术
ssm ssm框架配置 maven项目–》webquickstart pom文件 <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLo…...
MQ消息队列
MQ消息队列 消息队列(Message Queue,简称MQ),指保存消息的一个容器,本质是个队列 消息队列是大型分布式系统不可缺少的中间件,也是高并发系统的基石中间件 使用消息队列还可以实现异步处理 下图便是消息…...
【JVM技术专题】精心准备了一套JVM分析工具的锦囊「JConsole补充篇」
前提概要 本篇文章主要针对于之前本系列文章的补充版,之前落下了Jconsole分析工具,所以为了了却这个遗憾,所以小编又开了这篇文章,主要针对于Jconsole工具进行相关的应用性能分析。 初识JConsole 【Jconsole(Java Moni…...
基于PHP的高效协同办公管理系统
有需要请私信或看评论链接哦 可远程调试 基于PHP高效协同办公管理系统一 介绍 高效协同办公管理系统基于Yii框架开发,数据库mysql,可以稳定用于商业以及门户级的开发和使用。 二 系统功能 用户 1 办公门户(邮件/日志/汇报/日程/信息中心/通知公告/微博…...
第十四届蓝桥杯(Web应用开发)模拟赛1期-大学组
数据类型检测 请看这篇数据类型检测 渐变色背景生成器 html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name&…...
【遥感科学】遥感科学绪论
第一章 绪论 本系列适用于梅安新老师的遥感导论复习,也可以作为遥感领域的快速入门文章 一、遥感的基本概念 啥子是遥感?借用童庆禧院士的理解,那就是欲穷千里目,更上一层楼,遥感可以看做人的眼睛或者感知的延伸&…...
Tensorflow图像识别 Tensorflow手写体识别(二)
资源介绍 我们从 MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burges 这条链接(MNIST官网)中下载好数据集,如下: 下载下来以后整理成包含四个压缩包的文件MNIST_data(不要解压&#x…...
盘点上海IB国际学校,你会选哪一所呢?
之前,小编给大家盘点了上海热门的AP学校和Alevel学校,同时也介绍了国际课程的具体情况;今天就和大家聊聊上海的IB国际学校。IB即是国际文凭组织IBO(International Baccalaureate Organisation)为全球学生开设从幼儿园到大学预科的课程&#x…...
复现SMO算法:序列最小优化的启发式方法【三、算法原理揭秘-2】
接下来的内容将转向SMO算法的第二个核心组成部分——选择要优化的乘数的启发式方法。在这篇博客中,我们将探讨算法如何通过启发式选择策略高效地识别和更新拉格朗日乘数。通过对比直接优化的分析方法和启发式方法的策略选择,我们能够更全面地理解SMO算法…...
mysql基础知识汇总
本文自行整理,只做学习记忆之用,若有不当之处请指出 一、数据库三层结构 (1)所谓安装Mysql数据库,就是在主机安装一个数据库管理系统(DBMS),这个管理程序可以管理多个数据库。DBMS(database manage system) …...
基于Spring Boot的校园博客系统设计与实现
基于Spring Boot的校园博客系统设计与实现 开发语言:Java框架:springbootJDK版本:JDK1.8数据库工具:Navicat11开发软件:eclipse/myeclipse/idea 系统部分展示 系统功能界面图,在系统首页可以查看首页、文…...
ubuntu入门
基础命令 cd 切换命令 ls 查看当前目录下所有的文件 cp a.c b.c 拷贝a.c 到 b.c touch a.c 创建a.c文件 mkdir file 创建文件夹file rm file 删除文件 rmdir 删除test文件夹 rmdir test/ mv 移动文件 mv a.c b.c 把a.c 替换成b.c ifconfig 查看电脑网络信息 rm xx 删…...
串口服务器可以直接连接工业路由器吗
串口服务器可以直接连接工业路由器吗 在工业物联网的架构中,串口服务器和工业路由器都是不可或缺的重要组件。串口服务器的主要功能是将串口通信转换为网络通信,实现数据的远程传输和管理;而工业路由器则负责在工业环境中提供稳定、可靠的网…...
有哪些好用电脑端时间定时软件?桌面日程安排软件推荐 桌面备忘录
随着现代生活节奏的加快,人们对于时间管理和任务提醒的需求越来越大。为了满足这一需求,市场上涌现出了众多桌面便签备忘录软件,它们不仅可以帮助我们记录待办事项,还能定时提醒我们完成任务。在这篇文章中,我将为大家…...