• git命令行学习


    git命令行练习地址:git命令行练习地址

    基础命令行操作

    Git Commit

    提交修改记录,将暂存区的文件提交到本地仓库

    git commit -m'提交的备注信息'
    
    • 1

    Git Add

    将工作区的文件提交到暂存区

    Git Branch

    创建分支,指针跟着切换

    //当前在master分支
    //创建
    git branch <分支名>
    git branch bugFix
    //切换分支
    git checkout <切换到分支名>
    git checkout bugFix
    //创建并切换分支
    git checkout -b <分支名>
    git checkout -b bugFix
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    Git Merge

    合并两个分支时会产生一个新的特殊的提交记录,新的提交记录有两个父节点。指针指向新的提交记录

    //当前在master分支
    git merge <分支名(将这个分支合并到当前分支,合过来)>
    //将bugFix分支合并到master分支,master分支含有bugFix分支的修改内容,新产生的提交记录在master分支上
    git merge bugFix
    
    • 1
    • 2
    • 3
    • 4

    未合并
    未合并前
    合并后:执行git merge bugFix
    在这里插入图片描述
    练习
    在这里插入图片描述

    //先创建并切换到bugFix分支
    git checkout -b bugFix
    //提交一条记录:C2
    //git commit
    git commit -m '在bugFix分支上提交一条记录'
    //再切换到master分支并提交一条记录:C3
    git checkout master
    git commit -m '在master分支上提交一条记录'
    //再将bugFix分支合并到master分支上,产生一条新的记录:C4
    git merge bugFix
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    Git Rebase

    Rebase 的优势就是可以创造更线性的提交历史。产生一个新的提交记录,只有一个父节点。

    //当前在bugFix分支
    git rebase <分支名(将当前分支合并到这个分支,合过去)>
    //将bugFix分支合并到master,所产生的的新提交记录的父节点是在master分支上
    git rebase master
    
    • 1
    • 2
    • 3
    • 4

    未合并
    在这里插入图片描述
    合并后:执行git rebase master
    在这里插入图片描述
    再次合并:切换到master分支,再执行git rebase bugFix
    在这里插入图片描述
    练习:
    在这里插入图片描述

    //先创建并切换到bugFix分支
    git checkout -b bugFix
    //提交一条记录:C2
    //git commit
    git commit -m '在bugFix分支上提交一条记录'
    //再切换到master分支并提交一条记录:C3
    git checkout master
    git commit -m '在master分支上提交一条记录'
    //再切换到bugFix分支
    git checkout bugFix
    //合并到master,并产生一条新记录:C2`
    //注意,提交记录 C2 依然存在(树上那个半透明的节点),而 C2' 是我们 Rebase 到 master 分支上的 C2 的副本。
    git rebase master
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    提交记录移动

    HEAD

    HEAD 是一个对当前检出记录的符号引用 —— 也就是指向你正在其基础上进行工作的提交记录。
    HEAD 总是指向当前分支上最近一次提交记录。大多数修改提交树的 Git 命令都是从改变 HEAD 的指向开始的。
    HEAD 通常情况下是指向分支名的(如 bugFix)。在你提交时,改变了 bugFix 的状态,这一变化通过 HEAD 变得可见。
    分离的 HEAD 就是让其指向某个具体的提交记录而不是分支名
    操作前
    在这里插入图片描述
    操作后:执行

    git checkout C1;git checkout master;//这两个可以不操作
    git commit;git checkout C2
    
    • 1
    • 2

    在这里插入图片描述
    操作前:
    在这里插入图片描述
    操作后:执行git checkout C1
    在这里插入图片描述
    练习:
    在这里插入图片描述

    //分离出HEAD
    git checkout C4
    
    • 1
    • 2

    相对引用

    哈希值:基于 SHA-1,共 40 位;
    通过指定提交记录哈希值的方式在 Git 中移动不太方便,相对引用从一个易于记忆的地方(比如 bugFix 分支或 HEAD)开始计算。
    使用 ^ 向上移动 1 个提交记录,放在引用参照后面,如master^,移动到
    使用 ~ 向上移动多个提交记录,如 ~3

    ^练习

    操作前:
    在这里插入图片描述
    操作后:执行git checkout master^
    在这里插入图片描述
    操作前
    在这里插入图片描述
    操作后:执行

    git checkout C3
    git checkout HEAD^
    git checkout HEAD^
    git checkout HEAD^
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    练习
    在这里插入图片描述

    //切换到bugFix分支
    git checkout bugFix
    //有多个方法实现
    //1.
    git checkout bugFix^
    //2.
    git checkout C3
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    ~练习

    操作前
    在这里插入图片描述
    操作后:执行git checkout HEAD~4
    在这里插入图片描述
    强制修改分支位置(移动分支),可以直接使用 -f 选项让分支指向另一个提交;
    例如:git branch -f master HEAD~3:会将 master 分支强制指向 HEAD 的第 3 级父提交。
    操作前
    在这里插入图片描述
    操作后:执行git branch -f master HEAD~3
    在这里插入图片描述
    练习:
    在这里插入图片描述

    //移动master
    git branch -f master C6
    //移动bugFix
    git branch -f bugFix C0
    //移动HEAD
    git checkout C1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    如何在 Ubuntu 安装桌面环境
    Git Flow 的正确使用姿势
    2、HTML——标题分组、居中、引用标签、水平线标签下划线标签、删除标签、<font>标签、图像标签
    基于vue3和element-plus的省市区级联组件
    山西电力市场日前价格预测【2023-09-17】
    Kafka客户端Java代码使用
    AI 正在取代程序员
    【直播笔记0819】 面试必问之微服务架构
    华为云部署JavaWeb(SpringBoot)程序(基于Centos7)
    每日一题·AC
  • 原文地址:https://blog.csdn.net/h_jQuery/article/details/126306558