git学习笔记

news2024/10/2 12:33:34

1、安装及配置git

1、到官网下载git安装包:https://git-scm.com/download/win
在这里插入图片描述2、安装完成后,菜单栏有如下工具
在这里插入图片描述
3、配置账户和邮件信息

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

4、检查配置的账户和邮件

$ git config user.name
$ git config user.email

2、git使用

1、创建本地仓库

  1. 新建一个本地文件夹leargit,文件夹不要包含中文
  2. 进入到创建的文件夹,在该路径下,在git bash界面,将该目录初始化成git仓库,执行 git init,初始化后,目录中会自动生成一个.git文件夹
    在这里插入图片描述
    2、在learngit文件加新建一个readme.txt文件
    1.使用git add 将文件添加到暂存区
    2.使用git commit命令,将暂存区的所有内容提交到当前分支
#工作区,learngit文件夹就是一个工作区
#版本库:.git文件
#暂存区:版本库中的index文件叫做暂存区
#分支:创建仓库后,自动创建master分支,指向master分支的指针叫做HEAD
git commit -m "提交说明" #-m 后面引号内的字符串是提交的说明,可以输入任意内容
'''
git commit 可以一次提交多个文件,所以可以多次 git add 文件,然后再使用 git commit 一次提交
'''

文件提交步骤:

3、查看工作状态状态:git status
在这里插入图片描述
4、查看提交记录:

$ git add readme.txt
$ git commit -m "sssss"

通过 git log 命令查看历史记录
在这里插入图片描述

$ git log     #输出的信息较多,较乱
$ git log --pretty=oneline    #可以是每次记录单行输出,较直观,可以看到每条记录的 commit id(版本号)

在这里插入图片描述
5、版本回退
git reset命令可以回退版本
在git中,HEAD表示当前版本,HEAD^表示上一版本,HEAD ^^表示上上版本

$ git reset --hard HEAD^    #可以回退到上一个版本

或者根据提交的版本号进行回退

$ git reset --hard 1094ac      #Git会根据版本号,去查找
#可以通过 git reflog去查看每一次命令
$ git reflog         #根据历史命令,去查找历史commit id版本号

6、管理修改
第一次修改 --> git add --> 第二次修改 --> git commit
Git 管理的是修改,第二次修改未git add 所以并未提交

提交以后可以通过 git diff HEAD -- readme.txt 可以查看工作区和版本库中最新版本的区别

7、撤销修改
1.只是修改了文件,没有gitadd,可以使用git checkout --file丢弃工作区的修改

git checkout --file
2.已经执行了git add将修改添加到了暂存区,可以使用`git reset HEAD file`将暂存区的修改撤销掉,从新放回工作区
$ git reset HEAD readme.txt //git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区,HEAD表示最新版本

3.再到工作区丢弃修改

$ git checkout -- readme.txt //丢弃工作区的修改。

8、删除文件
1.从版本库删除文件,先git rm ,然后再git commit

$ git rm test.txt
$ git commit --m "remove test.txt"
2.误删文件,若版本库中还有,可以轻松的将误删的文件恢复到最新版本:
$ git checkout -- test.txt #用版本库的版本替换工作区的版本

3、远程仓库

1、由于本地仓库和GitHub通过ssh加密创数,所以需要在本地生成sshkey

 $  ssh -keygen -t rsa -C "xxx@megvii.com"  //邮箱名称

执行完毕后,在C:\Users\Administrator\生成.ssh文件夹,里面有 id_rsa 和 id_rsa.pub 这两个文件
在这里插入图片描述
2、访问github,在settings->ssh and gpg keys页面,新建sshkey,将id_rsa.pub 中的内容复制到Key文本框内
在这里插入图片描述
3、登录GitHub,再右上角找到“create a new repo”按钮,创建一个新仓库
在GitHub上的这个learngit仓库还是空的,可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
4、 在本地仓库执行以下命令

git remote add origin git@------ //origin 后面接的是远程仓库地址

5、远程仓库使用

$ git remote #查看远程仓库信息
$ git remote -v #查看远程仓库详细信息
$ git push -u origin master   # 把本地库内容推到远程,用git push命令,实际上把当前分支master推送到远程。
只要本地做了提交,就可以使用命令:
$ git push origin master       将本地的最新修改,推送到GitHub。
远程克隆:
$ git clone <git仓库地址>     git支持多种协议,包括https,但是ssh协议最快

4、分支管理

在git中默认有一条master分支,在实际应用可以创建其他分支
1、创建分支

$ git branch dev #创建开发分支
$ git checkout dev #切换到dev分支
$ git checkout -b dev #以上两条命令的综合,即创建dev分支,并切换到dev分支上

2、查看分支

git branch  #查看所有分支,当前分支前面会有一个*号

在这里插入图片描述
3、合并分支
git merge命令合并指定分支到当前分支

git checkout master #切换到master分支 
git merge dev #在master分支执行merge命令,将dev分支的修改合并到master

4、删除分支

git branch -d dev

5、解决冲突
当两个分支修改了同一个地方,在合并分支的时候就会报错
在这里插入图片描述
此时查看被修改的文件内容,git会自动将冲突信息写入到文件内
在这里插入图片描述
修改master分支的文件后重新commit

6、分支合并,禁用Fast forward模式
分支合并时,git一般使用Fast forward模式,这种模式下,删除分支,会丢掉分支信息,可以使用-no-ff禁用该模式

git merge --no-ff -m "禁用ff" dev

7、临时分支
日常工作中,dev分支的开发任务还未完成,临时来了一个bug需要开分支,此时去新建分支就会报错,提示当前分支的工作还未提交;
git提供了stash功能,可以将工作现场隐藏

#git stash
#git stash list 查看隐藏的工作区记录
#git stash apply 恢复被隐藏的工作区
#git stash drop  删除隐藏的工作区记录

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

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

相关文章

十大排序算法(C++)

十大排序算法Sorting algorithm(C) 百度百科&#xff1a; 所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。排序算法&#xff0c;就是如何使得记录按照要求排列的方法。排序算法在很多领域得到相当地…

高通平台开发系列讲解(AI篇)如何让yolov5运行在SNPE

文章目录 一、模型下载二、模型转换三、模型量化四、后处理加速沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇章主要介绍高通平台SNPE SDK运行yolov5。 一、模型下载 首先去git上下载yolov5s的代码和模型https://github.com/ultralytics/yolov5 二、模型转换 采…

Python爬虫实战,requests+xlwings模块,Python实现制作天气预报表!

前言 今天为大家介绍PythonExcel的实战项目&#xff0c;非常有趣&#xff0c;废话不多说。 Let’s start happily 开发工具 Python版本&#xff1a; 3.6.4 相关模块&#xff1a; xlwings模块 requests模块 pathlib模块 xlwings模块 json模块 环境搭建 安装Python并…

RAR压缩包,去除密码?

压缩包设置了加密&#xff0c;需要输入压缩包密码才能够顺利解压文件出来。但是有些时候&#xff0c;一些文件只需要一段时间内要加密&#xff0c;之后文件不需要加密了&#xff0c;每次解压文件的时候还是需要输入压缩包密码才行&#xff0c;就很麻烦&#xff0c;那么RAR压缩包…

SAP 接口主动推送企业微信异常消息

"推送企业微信格式lv_json { "msgtype": "markdown", "markdown": &&{ "content": "### 异常JOB通知\n >JOB名称&#xff1a; && gt_alv-jobname && \n 程序名称&#xff1a; && gt_…

戟星安全实验室|五分钟教你挖掘小程序漏洞

戟星安全实验室 忆享科技旗下高端的网络安全攻防服务团队.安服内容包括渗透测试、代码审计、应急响应、漏洞研究、威胁情报、安全运维、攻防演练等。 本文约1252字&#xff0c;阅读约需5分钟。 前言 现在大多小程序反编译教程所使用的都是node.js&#xff0c;操作过程较为麻烦…

第一周练习——认识复杂度和简单排序算法

前言&#xff1a; &#x1f44f;作者简介&#xff1a;我是笑霸final&#xff0c;一名热爱技术的在校学生。 &#x1f4dd;个人主页&#xff1a;个人主页1 || 笑霸final的主页2 &#x1f4d5;系列专栏&#xff1a;《数据结构与算法》 &#x1f4e7;如果文章知识点有错误的地方&a…

Mediapipe学习记录

学习文档 1、Google MediaPipe&#xff1a;设备端机器学习【完整解决方案】背后的技术实现 - 极术社区 - 连接开发者与智能计算生态 2、【转载】Google MediaPipe&#xff1a;设备端机器学习【完整解决方案】背后的技术实现 3、MediaPipe框架结构 - 走看看 Handtracking封装…

qt creator 设置 项目依赖关系

qt creator中有两种设置项目依赖关系的方式。 1、对于有依赖的项目&#xff0c;如果工程比较简单&#xff0c;可以将所有项目放到一个空的项目下&#xff0c;然后显示地指定从属关系&#xff0c;参考&#xff1a;qmake TEMPLATE subdirs_丘上人的博客-CSDN博客 2、通过qt cre…

leecode#Excel表列序号#组合两个表

题目描述&#xff1a; 给你一个字符串 columnTitle &#xff0c;表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。 分析&#xff1a; 法1&#xff0c;进制转换 这道题要求将Excel 表中的列名称转换成相对应的列序号。由于Excel 表的列名称由大写字母组成&#xff…

vue学习53~60(Vue组件化编程)

2 Vue组件化编程 2.1 模块与组件、模块化与组件化 2.1.1 模块 理解:向外提供特定功能的js程序,一般就是一 个js文件为什么: js 文件很多很复杂作用:复用js,简化js的编写,提高js运行效率 2.1.2 组件 理解:用来实现局部(特定)功能效果的代码集合(html/css/js/image…)为什么…

正大国际期货:外盘期货交易中常见的五类技术分析方法

外盘期货交易中&#xff0c;技术分析是必不可少的&#xff0c;技术分析是指以市场行为为研究对象&#xff0c;以判断市场趋势并跟随趋势的周期性变化来进行一切金融衍生物交易决策的方法的总和。常用的技术方法大体上可以分五大类&#xff1a;指标类、切线类、形态类、波浪类、…

安卓程序逆向与防护

安卓程序逆向与防护实际用处代码打包生成apk的步骤程序基础逆向步骤程序基础防御代码混淆针对逆向工具的防御手段ProguardSO文件防止二次打包程序进阶逆向攻击实战练习逆向简易安卓程序实际用处 1.当想要获得一款前后端分离的安卓程序的数据时&#xff0c;一般会考虑抓包后端传…

Kanzi:关于kanzi的一点杂谈

概述&#xff1a; 做过开发的小伙伴在初次接触Kanzi Studio 这个开发工具时&#xff0c;可能有点摸不着头脑&#xff0c;由于 它不像Android studio 也 不像QT &#xff0c;而且最大的一个区别是&#xff1a;kanzi基本不用写代码逻辑来控制程序显示UI&#xff0c;但是Android …

做外贸一定要知道的20条经验教训

做外贸你必须知道的20课&#xff0c;由米贸搜为你整理如下: 1.在工厂里&#xff0c;客人抱怨价格太高的时候&#xff0c;我总是说一分钱一分货&#xff0c;质量好的回复。进入一家贸易公司后&#xff0c;我知道价格才是硬道理&#xff0c;尤其是大客人。对价格的考虑肯定高于对…

1776年美国才建国,那一年中国在干什么?

时代淘汰你&#xff0c;都不会跟你打一声招呼。时代的残酷性&#xff0c;对人如此&#xff0c;对国家也是这般。美国的历史是太嫩了&#xff0c;在1776年才得以建国。但在这年&#xff0c;美国踏上了工业化革命的节奏&#xff0c;走上了扬帆起航之旅&#xff0c;逐步成为了超级…

JavaIO流处理笔记(万字总结)

学习视频561-JavaSE进阶-IO流概述_哔哩哔哩_bilibili 目录 IO流概述 IO流的分类 IO流四大家族 FileInputStream初步(并非最终方法) FileInputStream循环读(并非最终方法) 往byte数组中读 FileInputStream最终版 FileInputStream的其他常用方法 FileOutputStream的使用…

Kamiya丨Kamiya艾美捷抗冷休克结构域蛋白E1说明书

Kamiya艾美捷抗冷休克结构域蛋白E1化学性质&#xff1a; 物种反应性&#xff1a;人类其他未知物种。 Ig同种型&#xff1a;正常兔全血抗体 免疫原&#xff1a;表达重组CSDE1&#xff08;Met1~Val245&#xff09;在大肠杆菌中 格式&#xff1a;500g/mL多克隆抗体在0.01M PBS…

【Redis】List类型和底层原理

文章目录List类型1.List介绍1.1常用命令2.List底层实现3.ziplist剖析3.1ziplist结构3.2创建一个空的ziplist3.3ziplist的元素节点结构3.4ziplisqt的连锁更新3.5ziplist的缺陷4.quicklist剖析4.1quicklist表头结构5.List的应用场景----消息队列5.1保证消息保序5.2处理重复的消息…

Ubuntu搭建本地web站点,并内网穿透实现公网访问

本次教程我们通过搭建Apache服务&#xff0c;部署一个简单的静态样例站点&#xff0c;并使用cpolar内网穿透将内网样例站点发布到公网来进行演示。 1. 设置 Apache Web 服务器 1.1 安装Apache Web sudo apt-get install apache2 -y1.2 启动Apache Web sudo service apache2…