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.mzph.cn/news/778754.shtml

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

相关文章

五种免费的Python开发环境及具体下载网址

五种免费的Python开发环境及具体下载网址 目录 五种免费的Python开发环境及具体下载网址1.Anaconda2.PyCharm Community Edition3.Visual Studio Code4.Jupyter Notebook5. WinPython Python编程可选择不同的开发工具环境进行&#xff0c;本文介绍五种常用的&#xff0c;读者可…

vue前端工程化

前言 本文介绍的是有关于vue方面的前端工程化实践&#xff0c;主要通过实践操作让开发人员更好的理解整个前端工程化的流程。 本文通过开发准备阶段、开发阶段和开发完成三个阶段开介绍vue前端工程化的整体过程。 准备阶段 准备阶段我将其分为&#xff1a;框架选择、规范制…

JSP技术及其应用

目录 一、JSP 指令元素 1. page指令 二、JSP 注释 1. HTML注释&#xff1a; 2. Java注释&#xff1a; 3. JSP注释&#xff1a; 三、页面编码格式 1. pageEncoding&#xff1a; 2. contentType&#xff1a; 一、JSP 指令元素 JSP包含三种主要的指令元素&#xff1a;pag…

SQL-CRUD-2数据库实验

目录 第一关任务描述 相关知识 插入完整内容的行 插入选定内容的行 编程要求 测试说明 第一关代码 第二关任务描述 相关知识 删除表中的指定行 删除表中的所有行 编程要求 测试说明 第二关代码 第三关任务描述 相关知识 更新表中的指定行 编程要求 测试说明…

【Pytorch入门】小土堆PyTorch入门教程完整学习笔记(详细笔记并附练习代码 ipynb文件)

小土堆PyTorch入门教程笔记 最近在观看PyTorch深度学习快速入门教程&#xff08;绝对通俗易懂&#xff01;&#xff09;【小土堆】顺便做点笔记&#xff0c;方便回看&#xff0c;同时也希望记录的笔记能够帮助到更多在入门的小伙伴~ 【注】仅记录个人觉得重要的知识&#xff0c…

cas学习2:idea里搭建cas项目

在上篇中介绍了cas服务在tomcat中怎么启动的及某j集成cas&#xff0c;这篇讲下idea怎么集成cas成一个项目&#xff0c;为后续的定制自己的项目做好铺垫。 1.下载CAS 模板 Overlay Template&#xff0c;我这里使用 Apereo CAS 5.3 版本&#xff0c;JDK需要1.8 地址&#xff1a…

JavaWeb后端——HTTP协议/Tomcat

HTTP HTTP协议&#xff1a;无状态&#xff0c;对事务处理没有记忆能力。每次请求-响应都是独立的。后一次请求不会记录前一次请求数据。缺点&#xff1a;多次请求之间不能共享数据&#xff0c;优点&#xff1a;速度快。 HTTP协议请求报文&#xff1a; HTTP协议响应报文&#x…

JVM篇详细分析

JVM总体图 程序计数器&#xff1a; 线程私有的&#xff0c;每个线程一份&#xff0c;内部保存字节码的行号&#xff0c;用于记录正在执行字节码指令的地址。&#xff08;可通过javap -v XX.class命令查看&#xff09; java堆&#xff1a; 线程共享的区域&#xff0c;用来保存对…

MATLAB:优化与规划问题

一、线性规划 % 线性规划&#xff08;Linear programming, 简称LP&#xff09; fcoff -[75 120 90 105]; % 目标函数系数向量 A [9 4 7 54 5 6 105 10 8 53 8 9 77 6 4 8]; % 约束不等式系数矩阵 b [3600 2900 3000 2800 2200]; % 约束不等式右端向量 Aeq []; % 约束等式系…

实验2-spark编程

实验目的 &#xff08;1&#xff09;通过实验掌握Spark的基本编程方法&#xff1b; &#xff08;2&#xff09;熟悉RDD到DataFrame的转化方法&#xff1b; &#xff08;3&#xff09;熟悉利用Spark管理来自不同数据源的数据。 实验内容 1&#xff0e;Spark基本操作 请参照…

ROUYI框架地址

1、原版系统地址与文档 https://gitee.com/dromara/RuoYi-Cloud-Plus?_fromgitee_search 源码地址 https://plus-doc.dromara.org/#/ruoyi-cloud-plus/home 后端地址 https://plus-doc.dromara.org/#/plus-ui/home 前端地址 前端代码地址&#xff1a; RuoYi-Vue-Plus: 多租户…

maven的依赖继承

先说一下创建子maven工程的步骤 继承 继承的作用&#xff1a;在父工程中&#xff0c;统一管理项目中的依赖信息&#xff0c;进行统一的版本控制 继承的背景是&#xff1a;对一个大型的项目进行了模块拆分&#xff0c;一个project下&#xff0c;创建了很多的module&#xff0c…

东特科技现已加入2024第13届国际生物发酵产品与技术装备展

参展企业介绍 温州东特科技有限公司是一家集设计、生产、销售及服务为一体的卫生级流体设备企业。专业从事各种乳食品、制药、化工、啤酒设备、不锈钢卫生级阀门&#xff0c;管件&#xff0c;视镜&#xff0c;及非标配件定制等产品的销售与服务。先进的设计理念专业的技术优势一…

matlab 复制点云

目录 一、概述1、算法概述2、主要函数3、参考文献二、代码实现三、结果展示四、参考链接本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、概述 1、算法概述

docker部署ubuntu

仓库&#xff1a; https://hub.docker.com/search?qUbuntu 拉一个Ubuntu镜像 docker pull ubuntu:18.04 查看本地镜像&#xff1a; docker images 运行容器 docker run -itd --name ubuntu-18-001 ubuntu:18.04 通过ps命令可以查看正在运行的容器信息 docker ps 进入容器 最…

数据文件操作

一、什么是文件&#xff1f; 硬盘&#xff08;磁盘&#xff09;上的文件是文件。 在程序设计中&#xff0c;我们从文件功能的角度来分类的话&#xff0c;可以分为程序文件和数据文件。 1.1程序文件 程序文件包含源程序文件&#xff08;后缀为.c&#xff09;&#xff0c;目标文…

CAN总线系列一:初识CAN总线

CAN协议简介 CAN是控制器局域网络(Controller Area Network)的简称&#xff0c;它是由研发和生产汽车电子产品著称的德国BOSCH公司开发的&#xff0c;并最终成为国际标准&#xff08;ISO11519&#xff09;&#xff0c;是国际上应用最广泛的现场总线之一。 一、总线特点&#…

夜晚水闸3D可视化:科技魔法点亮水利新纪元

在宁静的夜晚&#xff0c;当城市的霓虹灯逐渐暗淡&#xff0c;你是否曾想过&#xff0c;那些默默守护着城市安全的水闸&#xff0c;在科技的魔力下&#xff0c;正焕发出别样的光彩&#xff1f;今天&#xff0c;就让我们一起走进夜晚水闸3D模型&#xff0c;感受科技为水利带来的…

物联网实战--入门篇之(一)物联网概述

目录 一、前言 二、知识梳理 三、项目体验 四、项目分解 一、前言 近几年很多学校开设了物联网专业&#xff0c;但是确却地讲&#xff0c;物联网属于一个领域&#xff0c;包含了很多的专业或者说技能树&#xff0c;例如计算机、电子设计、传感器、单片机、网…

C语言如何实现函数单个形参添加默认值

前言 &#xff08;1&#xff09;如果有嵌入式企业需要招聘湖南区域日常实习生&#xff0c;任何区域的暑假Linux驱动实习岗位&#xff0c;可C站直接私聊&#xff0c;或者邮件&#xff1a;zhangyixu02gmail.com&#xff0c;此消息至2025年1月1日前均有效 &#xff08;2&#xff0…