Git 命令总览

Git

Git 是一个版本控制系统,用于管理项目代码。通过 Git 可以轻松地进行代码的提交、更新和合并,确保项目代码的安全性和稳定性。同时,Git 还提供了丰富的工具和功能,如分支管理、代码审查、版本回退等,帮助开发更好地组织和管理项目代码,实现快速迭代和持续交付。
在这里插入图片描述

在 Git 中,工作区时指当前正在工作的目录。暂存区市位于工作区和仓库之间,用于存储准备提交到仓库的更改。当执行 git add 命令时,将更改从工作区添加到暂存区。仓库(也称为版本库)是Git存储项目历史记录的地方,包含项目的所有文件及其历史记录。当执行 git commit 命令时,将暂存区的更改提交到仓库中,成为项目的一个新版本。本地仓库和远程仓库通过 git push 和 git pull 同步代码。

.gitignore 忽略文件
.git 版本库

常用命令

git init 初始化,并在当前文件夹下创建一个 .git 文件夹。

git clone 复制 url 对应的项目仓库,git clone [url] (newname)。

git status 会显示工作区及暂存区域中不同状态的文件。 其中包含了已修改但未暂存,或已经暂存但没有提交的文件。查看当前项目里有多少文件需要关注,比如修改新增删除等。

git add 把要提交的文件添加到暂存区中。git add [<文件路径>]。

  • git add -u(或–update) [<文件路径>] 添加所有修改、已删除的文件到暂存区中。
  • git add -A(或–all) [<文件路径>] 添加所有修改、已删除、新增的文件到暂存区中。
  • git add . 等于 git add -A

git commit 将暂存区里的文件提交到本地仓库并添加描述信息。 git commit -m “<提交的描述信息>”

git log 查看提交记录历史。无参数是打印所有。

  • git log 打印从第一次提交到指定的提交的记录。
  • git log -<指定的数量> 打印指定数量的最新提交的记录。

git reset 根据传递的参数进行撤销操作,回退到指定版本。git reset [ --soft | --mixed | --hard ] [< commitid >]

  • soft: 仅重置 HEAD 指针,不修改暂存区和工作区,相当于取消之前的提交,但保留修改。即 git add 后的状态,等待再一次 commit。
  • mixed: 默认选项,重置 HEAD 指针并且将暂存区的文件恢复到指定的提交状态,但不影响工作区的文件。即还需要 git add 添加到暂存区和之后的 git commit 操作。
  • hard: 重置 HEAD 指针、暂存区和工作区,强制将所有修改都恢复到指定的提交状态,相当于完全取消之前的提交和修改。
  • 例如,要将 HEAD 指针重置到前一个提交,并保留之前的修改,可以使用:git reset --soft HEAD~1 HEAD表示最近的一次提交,~1表示前一个,这里也可以直接写前一个提交的 commit id。

git revert 功能和 git reset 类似,也是进行撤销,但是是生成一个新的版本来执行撤销的操作。

  • git revert

git diff 比较文件差异。无参数时比较当前文章与暂存区中文章差异,也就是没被暂存起来的更改。

  • git diff HEAD 比较当前文件和上次提交时的差异。
  • git diff 查看从指定的版本之后改动的内容。
  • git diff <分支名称> <分支名称> 比较两个分支之间的差异。

git stash 会把当前目录中的所有改动(但不包括未track的文件)存储在一个特殊的栈中,使你的文件状态处于上一次最新提交处。

  • git stash list 查看栈内记录。
  • git stash pop stash@{index} 恢复并删除某个记录(index从0开始。
  • git stash apply stash@{index} 恢复并保留这个记录。
  • git stash drop stash@{index} 删除某个记录。
  • git stash clear 删除全部记录。

git branch 列出所有本地分支。

  • git branch [branch-name] 新建一个分支,但依然停留在当前分支。
  • git branch -r 列出所有远程分支。
  • git branch -a 列出所有本地分支和远程分支。
  • git branch -d [branch-name] 删除分支。
  • git branch --track [branch] [remote-branch] 将现有分支与指定远程分支建立追踪关系。

git checkout 可以用于创建、切换分支或恢复工作树文件。

  • git checkout [branch-name] 切换分支。
  • git checkout -b [branch-name] 新建一个分支,并切换到该分支 = git branch + git checkout
  • git checkout -b origin/ 基于远程库分支创建分支。
  • 使用 checkout 切换分支时,先从本地库查找分支,在本地库没找到时,就去远程库中查找,在远程库也没有找到就会报错。
  • git checkout – (如果是 . 就是所有文件) 用于让工作区中的文件回到最近一次 git add 或 git commit 的状态。

git fetch 用于从远程仓库获取最新的提交历史和分支信息,但并不自动合并或修改本地代码。

  • git fetch <remote_name> 获取远程仓库的最新提交历史,但不会应用到当前工作目录中。更新本地仓库的远程分支指针,指向远程仓库的最新提交。如果需要将远程分支的更改应用到本地分支,可以使用 git merge 或 git rebase 命令来完成合并操作。

git merge 将一个分支合并到另一个分支上。

  • git merge 将指定的分支合并到当前所在的分支上。
  • git merge origin/ 合并远程分支到当前分支上。
  • 解决冲突:当Git在合并过程中碰到了冲突,它会编辑受影响的文件中的相关内容,并添加视觉标记用以展示冲突中双方在此部分的不同内容。这些视觉标记为:<<<<<<<,=======,>>>>>>>。要找到冲突发生的具体位置,在文件中搜索这些视觉标记会非常便捷地达成目的。当你完成了冲突的修复并准备好继续进行合并,只需要执行git add命令把已经解决好冲突的文件添加暂存区,告诉Git这些冲突已经解决完毕即可。

git rebase 变基,改变当前分支的起点。

  • git rebase <基分支> 将当前分支在基分支的最新提交点后面将差异提交逐个提交,最后将当前分支的 HEAD 指针指向最新的提交点。「基分支」的 HEAD 位置是不变的。要想完成分支合并,完成变基之后,需要再进行分支间的合并等操作。
  • 用变基可以使提交历史更线性,但是会改写提交历史,所以也要谨慎使用。

git remote 用于管理远程仓库的命令,它允许你查看、添加、删除以及重命名远程仓库的配置。

  • git remote 列出你的本地仓库中配置的所有远程仓库的名称。
  • git remote add 添加一个新的远程仓库到你的本地仓库配置中。
  • git remote remove 移除远程仓库。

git pull 将远程仓库的更改拉取到本地,并自动执行 git merge 操作进行合并。

  • git pull 不带任何参数,会默认将其关联的远程分支拉下来,并与当前分支进行合并。
  • git pull origin master:local_branch 显式指定要拉取的远程分支和本地分支。

git push 将本地代码推送到远程仓库,并于远程仓库中的对应分支进行同步。

  • git push origin master 将当前分支(master 分支)的提交推送到名为 origin 的远程仓库的 master 分支。
  • 如果你在本地仓库中进行了提交,并且远程仓库也有更新的提交,那么在执行 git push 命令时,可能会出现拒绝推送的情况。这时,你需要先使用 git pull 命令将远程仓库的更新拉取到本地仓库,解决冲突后再次尝试执行 git push。

git tag 用于管理标签的命令,通常用于发布版本或者重要的里程碑。

  • git tag 这会列出所有的标签,按字母顺序排序。
  • git tag <tag_name> 会在当前 HEAD 所指向的提交上创建一个轻量标签。
  • git tag -a <tag_name> -m “tag message” 创建带注释的标签。
  • git show <tag_name> 会显示指定标签的详细信息,包括标签对象、标签消息和标签所指向的提交。
  • git push origin <tag_name> 将标签推送到远程仓库(不会自动带过去)。

git rm 删除工作区文件,并且将这次删除放入暂存区。git rm 相当于 linux rm + git add 命令。

  • git rm [file1] [file2] … 删除工作区文件。
  • git rm --cached file 把文件从暂存区域移除,但该文件会保留在工作区。

git cherry-pick 选择性地将某个提交应用到当前分支上,而不需要合并整个分支。

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

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

相关文章

docker容器内存检测排查

查询容器使用内存 在运维当中&#xff0c;你会发现内存很彪的高&#xff0c;但是如何判断为什么会高&#xff0c;是什么样的程序造成的呢&#xff1f;赶快使用 top&#xff0c;或者 free -h或者 ps -v。是吗&#xff1f;道理是对的。 但是你会发现&#xff0c;全部都是docker…

Java_19 罗马数字转整数

罗马数字转整数 罗马数字包含以下七种字符: I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1…

如何扫码登记信息?二维码登记信息更加简单快捷

现在很多场所会通过生成二维码的方式来做人员信息登记或者人员签到&#xff0c;那么这种扫描二维码填写信息的制作技巧是什么样的呢&#xff1f;想要做出这种效果&#xff0c;那么需要生成表单二维码&#xff0c;准备好问题和说明&#xff0c;通过专业工具的功能就可以轻松完成…

Redis中的LRU算法分析

LRU算法 概述 Redis作为缓存使用时&#xff0c;一些场景下要考虑内容的空间消耗问题。Redis会删除过期键以释放空间&#xff0c;过期键的删除策略 有两种: 1.惰性删除:每次从键空间中获取键时&#xff0c;都检查取得的键是否过期&#xff0c;如果过期的话&#xff0c;就删除…

轻松上手,小白也能免费部署自己的炫酷静态网站!(如何免费搭建个人网站)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 使用方法 📒📝 操作步骤📝 更换主题⚓️ 相关链接 ⚓️📖 介绍 📖 在互联网时代,拥有一个个人网站无疑是展示自我、分享知识或建立品牌形象的有效途径。然而,许多人在追求这一目标的过程中,常常因为成本、时间和技…

【C++】1320. 时钟旋转(1)

问题 类型&#xff1a;整数运算 题目描述&#xff1a; 时钟上面的时针从 m 时走到 n 时旋转了多少度&#xff1f;&#xff08;m≤n&#xff0c;且 m 和 n 都是1∼12之间的整数&#xff09;。 输入&#xff1a; 2 个整数 m 和 n。 输出&#xff1a; 1 个整数代表时针旋转的…

[数据结构]插入和希尔排序

一、插入排序 插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴&#xff0c;但它的原理应该是最容易理解的了&#xff0c;因为只要打过扑克牌的人都应该能够秒懂。插入排序是一种最简单直观的排序算法&#xff0c;它的工作原理是通过构建有序序列&#xff0c;对于未排…

全球金融市场的汇率与政策利率演变:历史与未来的交汇

根据国际货币基金组织&#xff08;IMF&#xff09;等平台的数据&#xff0c;整理了全球各国的兑美元汇率&#xff0c;短期利率、长期利率、政策利率数据&#xff0c;时间范围最新至2024年3月&#xff0c;希望对大家有所帮助 一、数据介绍 数据名称&#xff1a;全球各国汇率、短…

O2OA(翱途)开发平台-快速入门开发一个门户实例

O2OA(翱途)开发平台[下称O2OA开发平台或者O2OA]拥有门户页面定制与集成的能力&#xff0c;平台通过门户定制&#xff0c;可以根据企业的文化&#xff0c;业务需要设计符合企业需要的统一信息门户&#xff0c;系统首页等UI界面。本篇主要介绍通过门户管理系统如何快速的进行一个…

DoubleU-Net:一种用于医学图像分割的深度卷积神经网络

DoubleU-Net&#xff1a;一种用于医学图像分割的深度卷积神经网络 摘要引言相关工作方法 DoubleU-Net A Deep Convolutional Neural Network for Medical Image Segmentation–2020 摘要 语义图像分割是将图像中的每个像素标记为相应的类的过程。基于编码器-解码器的方法&…

如何在Win10使用IIS服务搭建WebDAV网站并实现无公网IP访问内网文件内容

文章目录 前言1. 安装IIS必要WebDav组件2. 客户端测试3. 使用cpolar内网穿透&#xff0c;将WebDav服务暴露在公网3.1 安装cpolar内网穿透3.2 配置WebDav公网访问地址 4. 映射本地盘符访问 前言 在Windows上如何搭建WebDav&#xff0c;并且结合cpolar的内网穿透工具实现在公网访…

银行监管报送系统介绍(十二):非居民金融账户涉税信息报送

国家税务总局、财政部、中国人民银行、中国银行业监督管理委员会、中国证券监督管理委员会、国家金融监督管理总局2017年5月9日发布、2017年7月1日起施行的《非居民金融账户涉税信息尽职调查管理办法》。 一、《管理办法》出台的背景是什么&#xff1f;   受二十国集团&…

软件设计师24--概念设计阶段

软件设计师24--概念设计阶段 考点1&#xff1a;概念设计过程考点2&#xff1a;E-R图属性E-R模型-联系类型判断例题&#xff1a;E-R模型-联系类型判断扩充的E-R模型 考点1&#xff1a;概念设计过程 需求分析 --> 抽象数据 --> 设计局部ER模型 --> 合并局部模型消除冲突…

接口自动化测试要做什么?8个步骤讲的明明白白

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 先了解下接口测试流程&#xff1a; 1、需求分析 2、Api文档分析与评审 3、测试计划编写 4、用例设…

2024年2月吸尘器行业线上电商(京东天猫淘宝)综合排行榜

鲸参谋监测的线上电商平台&#xff08;淘宝天猫京东&#xff09;2月吸尘器行业销售数据公开。 根据鲸参谋电商数据平台显示&#xff0c;吸尘器行业2月销量累计约53万件&#xff0c;环比上个月下滑29%&#xff0c;同比去年下滑19%&#xff1b;销售额累计约4亿&#xff0c;环比上…

原生js实现循环滚动效果

原生js实现如下图循环滚动效果 核心代码 <div class"scroll"><div class"blist" id"scrollContainer"><div class"bitem"></div>......<div class"bitem"></div></div> </di…

ES学习日记(一)-------单节点安装启动

基于ES7.4.1编写,其实一开始用的最新的8.1,但是问题太多了!!!!不稳定,降到7.4 下载好的安装包上传到服务器或虚拟机,创建ES目录,命令mkdir -p /路径xxxx 复制安装包到指定路径并解压: tar zxvf elasticsearch-8.1.0-linux-x86_64.tar.gz -C /usr/local/es/ 进入bin目录安装,命…

【操作系统复习之路】操作系统概述(复习的同学有福啦)

长话短说&#xff0c;就记下笔记&#xff0c;期待期末90&#xff0c;随便希望能帮助到有需要的同学。 目录 一、操作系统的目标和作用 二、操作系统的发展过程 2.1 无OS 2.2 有OS 【1】批处理系统 【2】分时系统 【3】实时操作系统 【4】三种基本操作系统的比较&#…

类的定义与实例化

一.类的定义 1.1 格式 定义类的一般格式如下&#xff1a; class 类名{ public:公有成员列表; protected:保护成员列表; private:私有成员列表; }; 构成元素&#xff1a; &#xff08;1&#xff09;类头&#xff08;class head&#xff09; “class 类名”称为类头。 &…

大视频上传断点续传解决方案

版本&#xff1a;6.5.40 代码&#xff1a;up6-jsp-springboot: Web大文件上传-jsp-springboot示例 - Gitee.com nosql示例 nosql示例不需要进行任何配置&#xff0c;可以直接访问测试。 SQL示例 1.创建数据库 2.配置数据库连接 3.自动下载maven依赖 4.启动项目 启动成功 6.访…