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.rhkb.cn/news/289795.html

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

相关文章

大模型 智能体 智能玩具 智能音箱 构建教程 wukong-robot

视频演示 10:27 一、背景 继上文《ChatGPT+小爱音响能擦出什么火花?》可以看出大伙对AI+硬件的结合十分感兴趣,但上文是针对市场智能音响的AI植入,底层是通过轮询拦截,算是hack兼容,虽然官方有提供开发者接口,也免不了有许多局限性(比如得通过特定指令唤醒),不利于我…

【Web应用技术基础】CSS(6)——使用 HTML/CSS 实现 Educoder 顶部导航栏

第一题&#xff1a;使用flex布局实现Educoder顶部导航栏容器布局 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Educoder</title><script src"https://cdn.staticfile.org/jquery/1.1…

C/C++语言学习路线: 嵌入式开发、底层软件、操作系统方向(持续更新)

初级&#xff1a;用好手上的锤子 1 【感性】认识 C 系编程语言开发调试过程 1.1 视频教程点到为止 1.2 炫技视频看看就行 1.3 编程游戏不玩也罢 有些游戏的主题任务就是编程&#xff0c;游戏和实际应用环境有一定差异&#xff08;工具、操作流程&#xff09;&#xff0c;在…

Unity AI Navigation自动寻路

目录 前言一、Unity中AI Navigation是什么&#xff1f;二、使用步骤1.安装AI Navigation2.创建模型和材质3.编写向目标移动的脚本4.NavMeshLink桥接组件5.NavMeshObstacle组件6.NavMeshModifler组件 三、效果总结 前言 Unity是一款强大的游戏开发引擎&#xff0c;而人工智能&a…

ssm网上订餐管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目采用线性算法

一、源码特点 ssm 网上订餐管理系统是一套完善的信息系统&#xff0c;结合springMVC框架完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模…

移动端开发思考:Uniapp的上位替代选择

文章目录 前言跨平台开发技术需求技术选型uniappFlutterMAUIAvalonia安卓原生 Flutter开发尝试Avalonia开发测试测试项目新建项目代码MainViewMainViewModel 发布/存档 MAUI实战&#xff0c;简单略过打包和Avalonia差不多 总结 前言 作为C# .NET程序员&#xff0c;我有一些移动…

C++优先队列——priority_queue,函数对象,labmda表达式,pair等

头文件&#xff1a;#include<queue> 内部使用堆来实现&#xff0c;在需要或得最大的几个值或最小的几个值而不关心整个数组的顺序时非常好用。 用法&#xff1a; priority_queue<int, vector<int>, greater<int>>q; 第一个参数为堆中存储的元素。 …

Jmeter调用测试片段 —— 模块控制器

可以使用模块控制器调用测试片段。模块控制器提供了一种在运行时将测试片段替换为当前测试计划的机制。测试片段可以位于任何线程组中。 1、打开一个Jmeter窗口&#xff0c;添加好线程组、用户定义变量、模块控制器、测试片段、察看结果树。 2、用户定义变量同样定义好访问ip及…

linux离线安装jenkins及使用教程

本教程采用jenkins.war的方式离线安装部署&#xff0c;在线下载的方式会遇到诸多问题&#xff0c;不宜采用 一、下载地址 地址&#xff1a;Jenkins download and deployment 下载最新的长期支持版 由于jenkins使用java开发的&#xff0c;所以需要安装的linux服务器装有jdk环…

对话 Mines of Dalarnia: Web3 游戏创新,社区驱动与公链共建

作者&#xff1a;stellafootprint.network 嘉宾&#xff1a;Manfred Pack&#xff0c;Mines of Dalarnia 游戏开发总监 采访者&#xff1a;Alex Cooper&#xff0c;Footprint Analytics 北美社区与 BD 负责人 在区块链游戏领域&#xff0c;去中心化和玩家经济正在颠覆传统游戏…

3D模型格式转换案例 | CDM Tech如何应用HOOPS Exchange提升AR产品性能?

自2016年成立以来&#xff0c;CDM Tech一直致力于为汽车行业设计度量产品和提供其他解决方案&#xff0c;以满足主要的德国本土汽车制造巨头的需求。然而&#xff0c;随着时间的推移&#xff0c;他们开始将目光转向增强现实&#xff08;AR&#xff09;技术&#xff0c;并最终将…

【C语言】宏定义

1. 预定义符号 C语言设置了一些预定符号&#xff0c;可以直接使用&#xff0c;预定义符号也是在预处理期间处理的。 __FILE__ //进⾏编译的源⽂件 __LINE__ //⽂件当前的⾏号 __DATE__ //⽂件被编译的⽇期 __TIME__ //⽂件被编译的时间 __STDC__ //如果编译器遵循ANSI C&…

Convex and Semi-Nonnegative Matrix Factorizations

我们提出了非负矩阵分解&#xff08;NMF&#xff09;主题的几种新变体。考虑形式为X FG^T的因子分解&#xff0c;我们关注的是G被限制为包含非负元素的算法&#xff0c;但允许数据矩阵X具有混合符号&#xff0c;从而扩展了NMF方法的适用范围。我们还考虑了基向量F被约束为数据…

电脑突然死机怎么办?

死机是电脑常见的故障问题&#xff0c;尤其是对于老式电脑来说&#xff0c;一言不合电脑画面就静止了&#xff0c;最后只能强制关机重启。那么你一定想知道是什么原因造成的吧&#xff0c;一般散热不良最容易让电脑死机&#xff0c;还有系统故障&#xff0c;比如不小心误删了系…

Mini-Gemini: Mining the Potential of Multi-modality Vision Language Models

Mini-Gemini: Mining the Potential of Multi-modality Vision Language Models 相关链接&#xff1a;arxiv 关键字&#xff1a;Vision Language Models、Multi-modality、High-Resolution Visual Tokens、High-Quality Data、VLM-guided Generation 摘要 在这项工作中&#x…

【使用matlab绘制音频数据的时域图和频域图】

使用matlab绘制音频数据的时域图和频域图 虚拟的数据集见附件 一、读取数据并设置参数 close all;clear all;colordef black 设置参数 filedir D:\Projects\MATLAB\data name 2024-03-28.txt % disp(filedir);Fs 8192; %采样率&#xff0c;即单位时间的样本个数&#xff…

设计模式-设配器模式

目录 &#x1f38a;1.适配器模式介绍 &#x1f383;2.适配器类型 &#x1f38f;3.接口适配器 &#x1f390;4.类的适配器 &#x1f38e;5.优缺点 1.适配器模式介绍 适配器模式&#xff08;Adapter Pattern&#xff09;是作为两个不兼容的接口之间的桥梁。这种类型的设…

解码“零信任”,如何带来信任感?

零信任的“信任”来源&#xff0c;并非凭空而生&#xff0c;而是建立在严格、细致且持续的验证、策略之上。它不仅能够提升企业的安全防护能力&#xff0c;也在加速安全技术的创新与演进。 推动创新 零信任理念激活网络安全 身份和访问管理革新。零信任理念“永不信任&#…

OpenHarmony实战开发-List组件的使用之设置项

介绍 在本篇CodeLab中&#xff0c;我们将使用List组件、Toggle组件以及Router接口&#xff0c;实现一个简单的设置页&#xff0c;点击将跳转到对应的详细设置页面。效果图如下&#xff1a; 相关概念 CustomDialog&#xff1a;CustomDialog装饰器用于装饰自定义弹窗。List&…

Machine Learning机器学习之统计分析

目录 前言 机器学习之统计分析 统计学的主要目标包括&#xff1a; 统计学核心概念&#xff1a; 统计基础&#xff1a; 训练误差&#xff1a; 常见的损失函数&#xff1a; 正则化和交叉验证 博主介绍&#xff1a;✌专注于前后端、机器学习、人工智能应用领域开发的优质创作者、秉…