Git 实用技巧2——新建空白分支 | 重命名分支 | 回退到历史 commit

embedded/2024/9/23 14:33:13/

git version 2.39.2.windows

1. 新建空白分支

参考:Git - git-switch Documentation: https://git-scm.com/docs/git-switch/zh_HANS-CN

使用 --orphan 参数,创建一条不基于任何现有提交的空白分支。其初始提交(即 HEAD)不指向任何父提交,从而形成一个独立的、空的历史记录。

git switch --orphan <new_branch_name>

例如将 mian 分支重命名为 astrowind

2. 重命名分支

# 切换到需要重命名的分支
git switch main
# 使用 git branch -m 命令来重命名分支
git branch -m astrowind

如果需要把改动推送到远程仓库,请执行以下命令

# 删除远程的 old_branch
git push origin --delete main
# 将新的分支推送到远程仓库(-u, --set-upstream 表示设置 astrowind 为当前分支的上游分支)
git push -u origin astrowind

3. 回退到历史 commit

回退分支历史是一个敏感的操作,需要小心谨慎。最好在备份、团队协商和测试的基础上进行操作,以避免不必要的问题。

将本地和远程分支回退到历史 commit 的过程涉及使用 Git 的命令来修改分支历史。请注意,在执行这些操作之前,务必备份你的代码,以防发生意外情况。以下为一般步骤:

  1. 查找历史 commit 的哈希值:使用 git log 命令查看提交历史并找到目标 commit 的哈希值

  2. 创建备份分支(可选): 在执行任何回退操作之前,使用命令:git branch backup-branch 创建一个分支来备份当前的状态

  3. 本地分支回退: 使用以下命令将本地分支回退到历史 commit:

    git reset --hard <commit-hash>
    

    替换 <commit-hash> 为你想要回退到的历史 commit 的哈希。

  4. (!谨慎操作)远程分支回退: 强制推送(force push)本地分支更新远程分支(要求回退):

    这将会覆盖远程分支的历史,可能会影响团队中其他人的工作,所以要小心使用。

    git push origin <branch-name> --force
    

  • ID: E5-W2+1.0.0
  • 署名:零一/cc01cc(zeo): https://github.com/cc01cc/
  • 本作品采用署名-相同方式共享 4.0 国际(CC BY-SA 4.0 DEED)许可证进行许可,转载请标明源地址,谢谢

http://www.ppmy.cn/embedded/8841.html

相关文章

vue3的ref和reactive

ref RefImpl&#xff1a;引用对象&#xff0c;如果想让一个普通变量变成响应式的&#xff0c;就需要把这个变量丢给ref。 修改的时候需要使用name.value进行修改。使用的时候直接使用name字段就行。 补充&#xff1a;const obj{name:’li’}定义的对象是可以修改对象里面的属性…

MAC: 使用技巧

提高文件夹的权限并删除文件 提高权限 打开 Finder 应用程序。 在您想要删除的文件夹&#xff0c;并右键单击它。 显示简介 - 共享与权限”&#xff08;Sharing & Permissions&#xff09; -点击锁图标&#xff0c;并输入管理员密码解锁 - 将当前用户的权限更改为“读与写”…

【GNSS】GNSS开源相关代码汇总

仅作为笔者的学习笔记使用 参考&#xff1a;GNSS算法相关开源代码&#xff08;含多传感器融合相关项目&#xff09; - 知乎 (zhihu.com)

易货模式!解决您的库存压力 企业家朋友可以过来看看!

易货模式&#xff0c;这是一种非现金的交易方式&#xff0c;旨在让企业或个人以货换货&#xff0c;充分利用各自的闲置资源&#xff0c;换取所需商品或服务。 易货模式包含两种主要形式&#xff1a;传统的物物交换与现代的非现金结算。传统的物物交换&#xff0c;即双方直接以各…

Javascript基础

1.数组随机排序 let arr [1, 2, 3, 4, 5, 6, 7, 8, 9] // function result(params) { // for (let i 0; i < params.length; i) { // let randomIndex parseInt(Math.random() * params.length) // //定义完随机数后我们开始把当前数据存起来用于给赋值后的随…

Springboot策略和工厂模式结合

文章目录 一、定义接口二、定义工厂类三、实现接口的处理类[组件]四、调用 一、定义接口 package com.interotc.handler;/*** author lenovo*/ public interface IStrategy {<T> T execute(T parameter) throws Throwable; }二、定义工厂类 package com.interotc.handl…

Hive on spark编译

文章目录 Hive引擎简介Hive on Spark配置Yarn环境配置 Hive引擎简介 Hive引擎包括&#xff1a;默认MR、Tez、Spark Hive on Spark&#xff1a;Hive既作为存储元数据又负责SQL的解析优化&#xff0c;语法是HQL语法&#xff0c;执行引擎变成了Spark&#xff0c;Spark负责采用RD…

Hive进阶(2)----HDFS写入数据流程(赋图助君理解)

HDFS写入数据流程 一、写入流程 1、 Client向NameNode发起RPC请求&#xff0c;来确定请求文件block所在的位置&#xff1b; 2、 NameNode会视情况返回文件的部分或者全部block列表&#xff0c;对于每个block&#xff0c;NameNode都会返回含有该block副本的DataNode地址&…