git知识点汇总

  1. git init 初始化一个git仓库,后面可以加仓库名,在当前目录下创建指定名称的目录并在该目录下创建仓库,若不加则直接在当前目录下创建仓库。
  2. git仓库的三个区域:工作区(当前目录)、暂存区(.git/index)、本地仓库(.git/objets),文件的四种状态:未跟踪(Untrack,新建的文件从未使用git add添加到仓库)、未修改(Unmodified,自上次git commit提交之后就没有变动过)、已修改(Modified,修改了但是没git add添加到暂存区)、已暂存(Staged,已经使用git add添加到暂存区,但是还没有git commit提交),git commit只会将已经添加到暂存区的文件提交。可以使用git commit -am “”一次性完成添加和提交两个动作:

  3. git status命令可以查看当前仓库状态,git log命令查看以往所有提交信息,可以加上--oneline选项只查看简略信息。
  4. git reset 版本ID 命令可以回退到相应版本,git reset HEAD^命令表示回退到上一个提交的版本(HEAD^表示上一次提交),默认使用的是--mixed,即保留工作区但是不保留暂存区,其他选项还有--soft,表示工作区和暂存区都保留,--hard表示工作区和暂存区都不保留。

  5. git ls-files 命令可以显示版本控制中的文件,不包括未被跟踪的文件、被忽略的文件或已删除的文件。这些文件是已经被git跟踪并且在当前分支中的文件,这些文件已经被 git add 命令添加到暂存区但尚未提交。
  6. git reflog命令用于查看git仓库的引用日志(reference log),它记录了每个引用(如 HEAD、分支、远程引用等)的历史变更,通过 git reflog,可以追踪所有提交、重置、变基等操作的历史,甚至在分支或提交被删除后仍然可以找到相应的提交哈希值。
  7. git diff命令可以用来查看工作区与暂存区之间的差异(即那些没有使用git add添加到暂存区的文件内容);git diff HEAD命令可以用来查看工作区和本地版本仓库之间的差异;git diff --cached命令可以用来查看暂存区和本地版本仓库之间的差异(即那些已经使用git add添加到暂存区但是没有使用git commit提交到本地仓库的文件内容);git diff 版本号1 版本号2 命令可以用来查看指定版本之间的差异,版本号可以用HEAD来代替:HEAD可以用来表示当前版本,HEAD^(或HEAD~)可以用来表示上一个版本,HEAD~n(n为特定的数字)可以用来表示上n个版本;git diff还可以用来查看指定文件在两个版本之间的差异,如:git diff HEAD~3 HEAD filename。

  8. 删除文件:可以使用linux命令rm删除文件后再用git add在暂存区中删除相应的文件,也可以使用git rm 文件名 直接将暂存区和本地工作目录中的文件删除(这种方法不需要使用git add)。上述两种方法最后都要使用git commit 提交。

  9. .gitignore文件用于告诉git在版本控制中忽略特定的文件或目录。通过定义忽略规则,可以避免将不需要或不希望版本控制的文件(如临时文件、编译输出、日志文件等)包含在git仓库中。git版本控制默认不会将空文件夹加入版本控制之中,.gitignore文件的匹配规则是从上到下逐行匹配,每一行表示一个忽略模式。在添加忽略规则之前就已经加入暂存区的想要被忽略的文件仍然会被git版本控制。

  10. git remote add命令用于将远程仓库添加到本地仓库,使本地仓库能够与远程仓库进行交互。语法为 git remote add <name> <url>,其中<name>通常为origin,<url>是远程仓库的地址。例如,git remote add origin https://github.com/user/repo.git 会将名为origin的远程仓库添加到本地仓库,git remote -v 用于显示所有配置的远程仓库及其对应的URL,包括 fetch 和 push 操作的地址;git pull用于从远程仓库获取最新的更改并合并到当前分支,语法为git pull <远程仓库> <远程分支>,默认拉取到本地当前分支,如果之前用git push--set-upstream(或-u) <远程仓库> <本地分支>:<远程分支>将当前分支与远程分支绑定了,可以直接使用git pull拉取。可以使用git pull <远程仓库> <远程分支>:<本地分支>拉取到指定的本地分支,使用git branch -vv命令,可以查看本地分支跟远程分支是否存在绑定关系;git push 用于将本地的提交推送到远程仓库,以便其他开发者可以访问本地的更改,语法为git push <远程仓库名> <本地分支名>:<远程分支名>,如果本地分支名与远程分支名相同,则可以省略冒号为git push <远程仓库> <本地分支>,如果之前用git push --set-upstream <远程仓库>  <本地分支>:<远程分支>将当前分支与远程分支绑定了,可以直接使用git push推送。

  11. git branch命令可以查看当前所在分支,git branch 分支名 命令可以用来创建一个新的分支。git checkout 分支名 和 git switch 分支名 命令可以切换到相应的分支,git checkout -b 分支名 命令会创建一个分支并切换到该分支上(若该分支已经存在则会报错)。git branch -d 分支名 命令可以用来删除已经被合并的分支,若没有被合并则不能删除,可以使用-D来强制删除。git merge 分支名 命令可以将指定分支合并到当前分支中(合并前需要先切换到目标合并分支,合并时git会自动产生一次commit)。合并时如果两个相同文件修改的部分没有冲突可以自动合并,若有冲突可以手动合并之后再commit,也可以使用git merge --abort中断此次合并。

  12. git rebase命令用于将一个分支的变更应用到另一个分支上,通常用于将本地分支更新到最新的主分支状态。基本用法是 git rebase <base-branch>,其中 <base-branch> 是希望将当前分支变更应用到的目标分支。执行命令后,git会逐个应用当前分支的提交到 <base-branch> 的最新提交上。如果过程中出现冲突,git 会暂停并提示解决冲突,解决后使用git add标记文件为已解决,并运行git rebase --continue继续操作。如果决定中止rebase,可以使用git rebase --abort恢复到rebase开始前的状态。

  13. git stash是Git中用于临时保存当前工作区修改的命令,帮助开发者在不提交更改的情况下切换分支或执行其他任务。使用git stash后,未提交的修改和暂存区内容会被保存,工作区恢复为干净状态。之后可通过git stash apply或git stash pop恢复这些修改。git stash list可查看保存的所有stash,git stash drop用于删除指定的stash,而git stash clear清除所有stash。使用-u参数可将未跟踪的文件也一起保存,-a参数则包括忽略的文件。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电子电气架构 --- 中央HPC架构

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源,以现象替代逻辑,以情绪代替思考,把消极接受现实的懦弱,伪装成乐观面对不幸的…

让 Agent 具备语音交互能力:技术突破与应用前景(16/30)

让 Agent 具备语音交互能力&#xff1a;技术突破与应用前景 一、引言 在当今数字化时代&#xff0c;人机交互方式正经历着深刻的变革。从早期的命令行界面到图形用户界面&#xff0c;再到如今日益普及的语音交互&#xff0c;人们对于与机器沟通的便捷性和自然性有了更高的追求…

L27.【LeetCode笔记】2 的幂(五种解法)

目录 1.题目 2.自解 方法1:调用log函数 代码 提交结果 方法2:循环 提交结果 3.优解 方法3:位运算n & (n-1) 0 代码 提交结果 方法4:位运算lowbit 代码 提交结果 4.投机取巧的方法 代码 提交结果 1.题目 https://leetcode.cn/problems/power-of-two/?env…

第0章 机器人及自动驾驶SLAM定位方法全解析及入门进阶学习建议

嗨&#xff0c;各位同学大家好&#xff01;笔者自985硕士毕业后&#xff0c;在机器人算法领域已经深耕 7 年多啦。这段时间里&#xff0c;我积累了不少宝贵经验。本专栏《机器人工程师带你从零入门SLAM》将结合下面的SLAM知识体系思维导图及多年的工作实战总结&#xff0c;将逐…

密码学原理技术-第十一章-Hash Functions

文章目录 总结Why we need hash functionsDigital Signature with a Hash FunctionBasic Protocol for Digital Signatures with a Hash FunctionPrincipal input–output behavior of hash functions Security propertiesThe three security requirements of hash functionsWh…

Docker 远程访问完整配置教程以及核心参数理解

Docker 远程访问完整配置教程 以下是配置 Docker 支持远程访问的完整教程&#xff0c;包括参数说明、配置修改、云服务器安全组设置、主机防火墙配置&#xff0c;以及验证远程访问的详细步骤。 1. 理解 -H fd:// 参数的作用&#xff08;理解了以后容易理解后面的操作&#xff…

单元测试3.0+ @RunWith(JMockit.class)+mock+injectable+Expectations

Jmockit使用笔记_基本功能使用Tested_Injectable_Mocked_Expectations_jmockit.class-CSDN博客 静态变量直接赋值就好&#xff0c;没必要mock了 测试框架Jmockit集合junit使用 RunWith(JMockit.class) 写在测试案例类上的注解 Tested 在测试案例中,写在我们要测试的类上…

vue数据请求通用方案:axios的options都有哪些值

Axios 是一个基于 promise 的 HTTP 库&#xff0c;可以用在浏览器和 Node.js 中。 在使用 Axios 发送请求时&#xff0c;可以通过传递一个配置对象来指定请求的各种选项。 以下是一些常用的 Axios 配置选项及其说明&#xff1a; 1.url: &#xff08;必需&#xff09;请求的 …

MySQL 08 章——聚合函数

聚合函数是对一组数据进行汇总的函数&#xff0c;输入的是一组数据的集合&#xff0c;输出的是单个值 MySQL中&#xff0c;目前不能对聚合函数进行嵌套 一、聚合函数介绍 &#xff08;1&#xff09;AVG和SUM函数 举例&#xff1a;只适用于数值类型的字段&#xff08;或变量…

JVM对象创建过程

1 类加载检查 jvm通过new指令开始创建对象jvm执行new指令时&#xff0c;首先通过指令参数从常量池中取到需要创建的类名检查该类是否被加载&#xff0c;解析&#xff0c;和初始化过如果没有&#xff0c;则执行类的加载过程new指令对应到java语言具体的操作为 new 关键字创建对象…

Outlook2024版如何回到经典Outlook

Outlook2024版如何回到经典Outlook 如果新加入一家公司&#xff0c;拿到的电脑&#xff0c;大概率是最新版的Windows, 一切都是新的。 如果不coding, 使用国产的foxmail大概就可以解决一切问题了。可惜老程序员很多Coding都是基于传统Outlook的&#xff0c;科技公司所有人都是I…

三甲医院等级评审八维数据分析应用(五)--数据集成与共享篇

一、引言 1.1 研究背景与意义 随着医疗卫生体制改革的不断深化以及信息技术的飞速发展,三甲医院评审作为衡量医院综合实力与服务水平的重要标准,对数据集成与共享提出了更为严苛的要求。在传统医疗模式下,医院内部各业务系统往往各自为政,形成诸多“信息孤岛”,使得数据…

Scala_【4】流程控制

第四章 分支控制if-else单分支双分支多分支返回值嵌套分支 For循环控制包含边界不包含边界循环守卫循环步长嵌套循环循环返回值 While循环Break友情链接 分支控制if-else 单分支 双分支 多分支 返回值 嵌套分支 For循环控制 Scala也为for循环这一常见的控制结构提供了非常多的…

Nginx - 整合lua 实现对POST请求的参数拦截校验(不使用Openresty)

文章目录 概述步骤 1: 安装 Nginx 和 Lua 模块步骤 2: 创建 Lua 脚本用于参数校验步骤 3: 配置 Nginx 使用 Lua 脚本写法二&#xff1a; 状态码写法三 &#xff1a; 返回自定义JSON复杂的正则校验 步骤 4: 测试和验证ngx.HTTP_* 枚举值 概述 一个不使用 OpenResty 的 Nginx 集…

医院机房运维:所有IT资源运行状态同一平台实时呈现

在当今数字化医疗高速发展的时代&#xff0c;医院的信息化系统已然成为保障医疗服务顺畅开展、守护患者生命健康的关键基础设施。以郑州人民医院为例&#xff0c;随着医疗业务不断拓展&#xff0c;其背后支撑的机房运维面临着诸多棘手难题。 传统的分散式人工维护模式&#xff…

AcWing练习题:油耗

给定一个汽车行驶的总路程&#xff08;km&#xff09;和消耗的油量&#xff08;l&#xff09;&#xff0c;请你求出汽车每消耗 1 升汽油可行驶多少公里路程。 输入格式 输入共两行&#xff0c;第一行包含整数 X&#xff0c;表示行驶总路程。 第二行包含保留一位小数的浮点数…

前后端规约

文章目录 引言I 【强制】前后端交互的 API请求内容响应体响应码II 【推荐】MVC响应体III【参考】IV 其他引言 服务器内部重定向必须使用 forward;外部重定向地址必须使用 URL 统一代理模块生成,否则会因线上采用 HTTPS 协议而导致浏览器提示“不安全”,并且还会带来 URL 维护…

Redis(二)value 的五种常见数据类型简述

目录 一、string&#xff08;字符串&#xff09; 1、raw 2、int 3、embstr 二、hash&#xff08;哈希表&#xff09; 1、hashtable 2、ziplist 三、list&#xff08;列表&#xff09; ​编辑 1、linkedlist 2、ziplist 3、quicklist&#xff08;redis 3.2后的列表内…

RabbitMQ 客户端 连接、发送、接收处理消息

RabbitMQ 客户端 连接、发送、接收处理消息 一. RabbitMQ 的机制跟 Tcp、Udp、Http 这种还不太一样 RabbitMQ 服务&#xff0c;不是像其他服务器一样&#xff0c;负责逻辑处理&#xff0c;然后转发给客户端 而是所有客户端想要向 RabbitMQ服务发送消息&#xff0c; 第一步&a…

仿生的群体智能算法总结之二(十种)

群体智能算法是一类通过模拟自然界中的群体行为来解决复杂优化问题的方法。以下是10种常见的群体智能算法,接上文https://blog.csdn.net/lzm12278828/article/details/144933367仿生的群体智能算法总结之一(十种)-CSDN博客https://blog.csdn.net/lzm12278828/article/detail…