Git 常用基本命令

news2025/1/17 4:06:25

文章目录

  • 基本命令
    • 仓库相关命令
    • 提交相关命令
    • 分支相关命令
    • tag 相关命令
    • 撤销相关命令
  • IDEA Git 相关操作
    • 仓库相关操作
    • 提交相关操作
      • 提交代码步骤
    • 分支相关操作
    • tag 相关操作
    • 撤销相关操作
  • 参考资料

本文主要介绍 Git 常用的基本命令。

基本命令

仓库相关命令

  • 创建新仓库
git init
  • 克隆项目
git clone https://github.com/Erik-ly/git-test.git
  • 查看当前配置
git config --list
  • 配置用户名
git config --global user.name "xxx"
  • 配置邮箱
git config --global user.email "xxx@xxx.com"

提交相关命令

  • 添加某个文件到暂存区
git add test.txt
  • 添加所有文件到暂存区
git add .
  • 查看仓库当前状态
git status
  • 显示变更信息
git diff
  • 提交暂存区到本地仓库
git commit -m "add test file"
  • 下载远程代码并合并
git pull
  • 上传远程代码并合并
git push
  • 查看历史提交记录
git log

分支相关命令

  • 显示本地分支
git branch
  • 显示所有分支
git branch -a
  • 获取所有远程分支
git fetch
  • 切换远程分支到本地
git checkout -b dev origin/dev
  • 切换分支
git checkout release
  • 创建一个分支,并切换到该新分支
git checkout -b dev
  • 基于当前 HEAD 创建新分支
git branch release
  • 将本地分支上传到远程
git push origin dev
  • 删除本地分支(删除其他分支,不能删除当前分支, -D 是强制删除)
git branch -d dev2
  • 合并特定 commit 到另一个分支

比如我在 dev 分支修改了一个bug,提交为 “fix bug-7”,现在需要把 dev 分支的这个代码合并到 release 分支。

首先在需要合并的 commit 所在的分支下使用 git log 查看,找到 “fix bug-7” 的 commit 为 “072a2e524c9fe3d082dfce37762e4a43e200484c”,按 Q 键退出日志查看。

Erik@DESKTOP-M3B942V MINGW64 ~/IdeaProjects/git-test (dev)
$ git log
commit 072a2e524c9fe3d082dfce37762e4a43e200484c (HEAD -> dev, origin/release-1.0, origin/dev, release-1.0)
Author: “liuyang” <liuyangerik@gmail.com>
Date:   Sun Jun 13 11:00:36 2021 +0800

    fix bug-7

然后切换到 release 分支。

在 release 分支上执行执行 pick 操作

git checkout release
git cherry-pick 072a2e524c9fe3d082dfce37762e4a43e200484c

tag 相关命令

  • 显示已存在的 tag
git tag
  • 创建 tag
git tag -a v1.0 -m "v1.0 tag"
  • 删除本地 tag
git tag -d v1.0
  • 查看 tag 信息
git show v1.0
  • 推送所有 tag 到远程仓库
git push --tags

撤销相关命令

  • 恢复暂存区的指定文件到工作区
git checkout file_name
  • 恢复暂存区的所有文件到工作区
git checkout .
  • 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
git reset [file]
  • 重置暂存区与工作区,与上一次commit保持一致
git reset --hard
  • 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致,commit 之后的版本都会丢失
git reset --hard [commit]
  • 撤销某次操作,此次操作之前和之后的 commit 都会保留
git revert [commit]

IDEA Git 相关操作

仓库相关操作

  • 原有项目引入 Git 管理

原有项目使用 IDEA 打开,依次点击 VCS — Import into Version Control — Create Git Repository…

image-20210614095503728

image-20210614095529290

在弹出的对话框中选择这个项目,点击 “OK” 即可。

下面以项目放到 GitHub 为例,首先在 GitHub 上创建项目,

image-20210614095959894

然后添加源端仓库,

image-20210614094523563

image-20210614100255144

image-20210614100315234

commit 代码后,提交到远程仓库。

image-20210614100358673

  • 添加其它远端仓库

image-20210614094523563

image-20210614094629934

image-20210614094927469

Name 写为 非 “origin” 的名字,可根据 Git 仓库工具,比如:GitBucket。之后提交代码的时候可选择改仓库提交。

提交相关操作

  • 更新代码

推荐使用下图红框中标注的按钮拉取更新代码,快捷键 Ctrl + T ,这种会更新全部,拉取新的分支,自动 merge 等,不容易出错。

image-20210613112929011

image-20210613113545159

  • commit 提交代码

使用快捷键 Ctrl + K, 提交代码

image-20210614084716254

  • Push 代码

使用快捷键 Ctrl + Shift + K push 代码

image-20210614084820056

提交代码步骤

  1. 更新最新代码(快捷键:Ctrl + T),将代码更新到最新。
  2. 修改代码。
  3. 更新最新代码(快捷键:Ctrl + T),提交代码之前要先更新代码,在修改代码这段时间内,如果有其他人修改了代码,需要更新,否则可能会覆盖别人的代码,另外这时更新,如果有 Merge 的情况,会自动 Merge,或让自己来 Merge 代码,在提交记录里不会出现大量的 Merge 记录。
  4. Add 代码,无特殊情况,在项目上执行下 ADD 操作,将自己新加的或之前 Merge 的一些文件 add 进来;
  5. Commit 代码(快捷键:Ctrl + K),注意写清楚修改了哪些内容,尽量一个功能一个 commit,可以在 commit 对话框中选择本次要提交的文件;
  6. Push 代码(快捷键:Ctrl + Shift + K),提交代码时注意将要提交到哪个分支,这里 push 所有 commit,无法选择某个 commit push。

分支相关操作

  • checkout 新分支

image-20210613113936478

image-20210613114018124

  • 切换分支

image-20210613114155693

  • 删除本地分支

image-20210614084321087

  • 将本地分支推送到远端

如在本地 checkout 出一个 “release-1.0” 分支,需要将这个分支推送到远端,则可以使用 Ctrl + Shift + K 进行 Push,在弹出框中看到 ”release-1.0 → origin:release-1.0“,如果不是这样,则可点击分支进行手动修改(红框中带有下划线部分均可点击后修改),点击 ”Push“ 按钮进行提交即可。

image-20210613110545114

  • 查看提交记录

image-20210614085024101

  • 查看某个分支的提交记录

可以选择本地的分支

image-20210614085124801

也可以通过 “Select…” 手动输入特定分支,按 Ctrl + Enter 确定

image-20210614090900079

image-20210614091026594

  • Pick 合并 commit 到其它分支

image-20210614091514290

如果需要 Merge

image-20210614091819551

image-20210614091935163

tag 相关操作

  • 创建 tag

在某个 commit 又键,选择 “New Tag …”

image-20210614144459410

然后输入 tag 名称

image-20210614144526764

最后推送到远端,注意要勾选 “Push Tags”

image-20210614144644304

撤销相关操作

  • reset 操作

image-20210614094123232

  • revert 操作

image-20210614094148822

参考资料

  • Git 基本操作 | 菜鸟教程:https://www.runoob.com/git/git-basic-operations.html
  • git命令大全:https://gist.github.com/Erik-ly/d68cc402fade0ef6b960ca8fc5603949
  • 常用 Git 命令清单 - 阮一峰的网络日志:http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html
  • Git恢复之前版本的两种方法reset、revert(图文详解):https://blog.csdn.net/yxlshk/article/details/79944535
  • git revert 用法 - demoblog - 博客园:https://www.cnblogs.com/0616–ataozhijia/p/3709917.html
  • Git合并特定commits 到另一个分支:https://blog.csdn.net/ybdesire/article/details/42145597

注:本文首发于个人博客网站: http://www.erik-ly.com/

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

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

相关文章

C#,图像二值化(15)——全局阈值的一维最大熵(1D maxent)算法及源程序

1、最大熵&#xff08;maxent&#xff09; 最大熵&#xff08;maxent&#xff09;方法植根于信息理论&#xff0c;并已成功应用于许多领域&#xff0c;包括物理学和自然语言处理。它创建了一个模型&#xff0c;该模型最好地解释了可用数据&#xff0c;但有一个约束&#xff0c…

甘特图中的依赖关系是什么?

依赖关系是甘特图应用中常见的概念。甘特图依赖关系也称为任务依赖关系&#xff0c;它是指项目任务之间的关系&#xff0c;需要按特定顺序执行一个或多个任务才能完成某项任务&#xff0c;依赖于完成前一任务的任务是后继任务&#xff0c;而其依赖的任务是前导任务。依赖关系一…

字典特征提取、文本特征提取、jieba分词处理、tf-idf文本特征提取概念及代码实现

一、特征提取 特征提取&#xff1a;将任意数据&#xff08;如文本或图像&#xff09;转换为可用于机器学习的数字特征&#xff0c;特征值化是为了计算机更好的去理解数据 特征提取api&#xff1a;sklearn.feature_extraction 特征提取分类 字典特征提取(特征离散化)文本特征…

小蓝本 第一本《因式分解技巧》 第九章 待定系数法 笔记 (第九天)

小蓝本 第一本《因式分解技巧》 第九章 待定系数法 笔记 &#xff08;第九天&#xff09;前言待定系数法二次因式一次因式分解缺陷二次因式分解方法注意既约的情况拓展习题9题目题解前言 已经进行了9天&#xff0c;第八章有一点烧脑&#xff0c;但感觉还是很不错的&#xff0c…

Python类继承:深入了解

引言 前段时间刚好学习了&#xff0c;C中类方面的内容&#xff0c;发现和Python中有许多不同之处&#xff0c;尤其是在类的继承这一块&#xff0c;今天有空&#xff0c;正好写篇文章&#xff0c;记录一下有兴趣的东西&#xff0c;也算是对Python的一个复习。 1 C中的构造析构函…

设计模式学习(二):Observer观察者模式

一、什么是Observer模式在Observer模式中&#xff0c;当观察对象的状态发生变化时&#xff0c;会通知给观察者。Observer模式适用于根据对象状态进行相应处理的场景。简单一句话概况就是&#xff1a;观察者会发送观察对象状态变化的通知。二、Observer模式示例代码下面示例程序…

10种顶流聚类算法Python实现(附完整代码)

目录 前言 一、聚类 二、聚类算法 三、聚类算法示例 1、库安装 2、聚类数据集 3、亲和力传播 4、聚合聚类 5、BIRCH 6、DBSCAN 7、K均值 8、Mini-Batch K-均值 9、均值漂移聚类 10、OPTICS 11、光谱聚类 12、高斯混合模型 三、总结 前言 今天给大家分享一篇关…

虚幻五引擎的出现会不会导致技术美术需求的下降?

先来结论&#xff1a;不会&#xff0c;虚幻五引擎的出现反而会致使技术美术需求的增加。 UE5主要引入的两大新技术 Nanite ​ 渲染技术Nanite&#xff0c;能够直接在游戏里表现出影视级别的超高精度模型。在演示中有一个古代雕塑的镜头&#xff0c;使用的模型超过3300万多边形…

Spring MVC阶段测试

Spring MVC阶段测试 1.新建Maven项目&#xff0c;静态资源文件&#xff0c;如JS、CSS、图片应存放在&#xff08; C &#xff09;目录下。 A、src/main/java B、src/test/java C、src/main/resources/static D、src/main/resources/templates 2.新建Maven项目&#xff0c…

无风扇工控主机支持一路CAN总线

CAN 接口如图所示&#xff0c;输入如下命令&#xff1a; ifconfig -a //查看所有网卡 如果 FlexCAN 驱动工作正常的话就会看到 CAN 对应的网卡接口&#xff0c;如图。从图中可 以看出&#xff0c;有一个名为“can0”的网卡&#xff0c;这个就是 BL302 板上的 CAN1 接口对应的 c…

Selenium用法详解【设置元素等待】【JAVA爬虫】

简介本文主要介绍如何使用java代码利用Selenium操作浏览器&#xff0c;某些网页元素加载慢&#xff0c;如何操作元素就会把找不到元素的异常&#xff0c;此时需要设置元素等待&#xff0c;等待元素加载完&#xff0c;再操作。设置元素等待很多页面都使用 ajax 技术&#xff0c;…

Python - Flask 整合 UEditor

1. 引言 UEditor 是由百度「FEX前端研发团队」开发的所见即所得富文本 web 编辑器&#xff0c;具有轻量&#xff0c;可定制&#xff0c;注重用户体验等特点&#xff0c;开源基于MIT协议&#xff0c;允许自由使用和修改代码 官方文档地址&#xff1a;http://fex.baidu.com/ued…

软件构造与与体系结构习题

软件构造与与体系结构习题第一章第二章第三章第一章 1.下面关于类的描述正确的是&#xff1f;A A、类是一组相似事物的统称。 B、一个事物可以称为一类。 C、两个完全相同的事物可以称为一类。 D、“奥巴马”和“特朗普”可以统称为“奥巴马”。 解析&#xff1a; 类&am…

【Python笔记】课时01:Python3+Pip环境配置(python安装)

1. 不同环境下安装python windows&#xff08;不好安装相关python包&#xff0c;不推荐&#xff09;anaconda&#xff08;科学计算环境 python 相关python包&#xff09;&#xff08;推荐&#xff09;linux&#xff08;如 ubuntu&#xff09;macos 2.1. windows 安装 pytho…

前端性能优化(五):webpack构建优化

目录 一&#xff1a;webpack的优化配置 1.1.Tree-shaking 1.2.JS压缩 1.3.作用域提升 1.4.Babel 优化配置 二&#xff1a;webpack的依赖优化 2.1.noParse&#xff08;不解析&#xff09; 2.2.DllPlugin 三&#xff1a;webpack 细节优化 四&#xff1a;webpack的资源压…

Linux和windows文件互传

文章目录一、方法1&#xff1a;设置共享剪切版二、方法2&#xff1a;使用FileZilla软件1.开启 Ubuntu 下的 FTP 服务2.查看Ubuntu的ip地址2.windows安装FileZilla注意一、方法1&#xff1a;设置共享剪切版 在Ubuntu20版本中好像已经自动实现 本人使用的是旧版18.4&#xff0c…

【每日十分钟前端】基础篇21,为什么HTTPS更安全(SSL原理)、单行/多行文本溢出的省略样式、DOM常见的操作有哪些

1、[HTML]为什么HTTPS更安全(SSL原理)&#xff1a;对称加密、非对称加密、摘要、数字签名、数字证书。 2、[CSS]单行/多行文本溢出的省略样式。 3、[JS]DOM常见的操作有哪些&#xff1f; 1、[HTML]为什么HTTPS更安全(SSL原理)&#xff1a; 对称加密&#xff1a;协商密钥对数据…

异常检测实战应用案例精讲-【工具篇】时序异常检测TODS

前言 时间序列异常值检测旨在识别数据中意外或罕见的实例。作为数据分析最重要的任务之一,异常值检测在时间序列数据上有多种应用,例如欺诈检测、故障检测和网络安全攻击检测。例如,雅虎 和微软 已经建立了自己的时间序列异常值检测服务来监控他们的业务数据并触发异常值…

Hudi、Iceberg底层索引Z-Order

目录 第一部分 数据库领域的Z-Order 1.1 最左匹配原则 1.2 Z-Order动机 1.3 OLTP 1.4 OLAP 第二部分 Z-Order效率分析 2.1 按照A进行查询 2.2 按照B进行查询 2.3 总结 第三部分 Z-Order缺陷 第四部分 总结及建议 参考文章 Z-Order最早是1966提出的一项将多维数据映…

数据分析-深度学习 Day1

目录&#xff1a;第一节 机器学习&深度学习介绍第二节 机器学习攻略一、机器学习的框架二、模型训练攻略三、针对Optimization Issue的优化&#xff0c;类神经网络训练不起来怎么办(一) 局部最优点和鞍点(二) 批处理和momentum(三) 自动调节学习率Learning rate(四) 损失函…