Git的相关使用(工作常用)

news/2024/12/22 9:31:55/

一、撤销的相关命令(重要!!!)

1. 使用 git reset

(a)软重置

如果你想撤销最近的提交,但保留文件的更改(即将它们放回暂存区),可以使用:

git reset --soft HEAD~1
(b)混合重置(默认)

如果你想撤销最近的提交,并将更改放回工作目录(即不再暂存这些更改),可以使用:

git reset HEAD~1
(c)硬重置

如果你想完全丢弃最近的提交及其更改,可以使用:

git reset --hard HEAD~1

注意:硬重置会永久删除未提交的更改,请谨慎使用。

2. 使用 git revert

如果你已经将提交推送到远程仓库,并且不想改变历史记录,可以使用 git revert。这个命令会创建一个新的提交,撤销指定的提交:

git revert HEAD

这会生成一个新的提交,内容是撤销最后一次提交的更改。

3. 查看提交历史

在执行任何操作之前,建议查看提交历史,以确保你要撤销的提交是正确的。你可以使用:

git log

这个命令会显示提交历史,包括每个提交的哈希值、作者、日期和提交信息。

4. 强制推送(如果需要)

如果你使用 git reset 并且需要将更改推送到远程仓库,你可能需要强制推送:

如果你不知道当前在哪个分支可以查看一下(因为强制推送不可逆,所以确定好强制推送到正确的分支)!!!

4.1、查看当前分支

git branch

4.2、强制推送

git push --force

4.3、强制推送到指定的分支

git push origin <branch-name> --forc

警告:强制推送会覆盖远程分支的历史记录,可能会导致其他开发者的本地仓库出现问题。因此,在团队协作时应谨慎使用。

 二、Git的基本命令

  1. 初始化仓库

    git init
  2. 克隆远程仓库

    git clone <repository-url>
  3. 查看当前状态

    git status
  4. 添加文件到暂存区

    git add <file-name>

    或者添加所有文件:

    git add .
  5. 提交更改

    git commit -m "commit message"
  6. 查看提交历史

    git log

三、 分支管理

1、查看分支

git branch

2、创建新分支:

git branch <branch-name>

3、切换分支

git checkout <branch-name>

4、创建并切换到新分支:

git checkout -b <branch-name>

5、合并分支:

git merge <branch-name>

四、 远程操作

1、查看远程仓库

git remote -v

2、添加远程仓库

git remote add <name> <repository-url>

3、推送到远程仓库

git push <remote> <branch-name>

4、从远程仓库拉取更改

git pull <remote> <branch-name>

5、获取远程更新

git fetch

五、其他常用命令 

1、查看修改内容

git diff

2、重置文件到最后一次提交

git checkout -- <file-name>

3、撤销最近的提交(保留更改):

git reset --soft HEAD~1

4、删除分支:

git branch -d <branch-name>


http://www.ppmy.cn/news/1533363.html

相关文章

第十章 MySQL主从复制搭建Docker版

目录 1.新建主服务器容器示例3307 2. 进入/mydata/mysql-master/conf目录下创建my.cnf配置 3.修改完配置后重启master实例 4.进入mysql-master容器 5.master容器实例内创建数据同步的用户 6.新建从服务器容器实例3308 7.进入/mydata/mysql-slave/conf目录下新建my.c…

C#核心(2)类和对象

前言 在上一节中&#xff0c;我们已经了解了面向对象开发的概念和原则&#xff0c;那今天&#xff0c;我们就来讲讲c#中的类。 c#中的类是我们面向对象开发使用最频繁的东西。 在未来我们要学习的unity开发中也是必不可少的。 所以希望屏幕前的你务必把这一块的知识学得扎实…

在线相亲系统:新时代的婚恋观与传统习俗的碰撞

随着互联网技术的发展&#xff0c;相亲交友平台已成为年轻人寻找伴侣的新方式。这些平台不仅改变了人们的社交习惯&#xff0c;也反映了当代婚恋观与传统习俗之间的碰撞与融合。开发h17711347205本文将探讨在线相亲系统是如何在尊重传统的基础上&#xff0c;为现代年轻人提供更…

INTO:Web3世界的“价值引力场”

在Web3的宇宙中&#xff0c;一股强大的引力正在重塑整个数字世界的格局。这股引力&#xff0c;来自一个名为INTO的“超级连接器”。作为Web3社交领域的先锋&#xff0c;INTO正在用一种前所未有的方式重构整个产业链的价值体系。它不再满足于单一领域的创新&#xff0c;而是大胆…

Springboot3 + MyBatis-Plus + MySql + Vue + ProTable + TS 实现后台管理商品分类(最新教程附源码)

Springboot3 MyBatis-Plus MySql Uniapp 商品加入购物车功能实现&#xff08;针对上一篇sku&#xff09; 1、效果展示2、数据库设计3、后端源码3.1 application.yml 方便 AliOssUtil.java 读取3.2 model 层3.2.1 BaseEntity3.2.1 GoodsType3.2.3 GoodsTypeSonVo3.3 Controll…

【Linux】进程优先级、调度、命令行参数:从理论到实践(二)

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;Linux 目录 &#x1f680; 前言一&#xff1a; &#x1f525; 进程优先级 &#x1f375; 基本概念&#x1f375; 查看系统进程&#x1f375; PRI and NI&#x1f375; PRI vs NI&#x1f375; 用to…

电影系统1-MovieStrip.vue

那么slot在这的作用到底是让父组件在子组件插入内容还是复用呢 一个超大div包含两个div <a :href"/movie/info/${movie.id}"> 为什么地址不直接是${movie.id}呢&#xff0c;movie/info/这个地址从何而来呢&#xff1f; 1.定义路由&#xff0c;以便在不同的页面…

Python批量下载PPT模块并实现自动解压

日常工作中&#xff0c;我们总是找不到合适的PPT模板而烦恼。即使有免费的网站可以下载&#xff0c;但是一个一个地去下载&#xff0c;然后再批量解压进行查看也非常的麻烦&#xff0c;有没有更好方法呢&#xff1f; 今天&#xff0c;我们利用Python来爬取一个网站上的PPT&…