【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八)

这篇具有很好参考价值的文章主要介绍了【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八),Git,# Git高级篇,git,gitea,笔记

  • 💌 所属专栏:【Git】

  • 😀 作  者:我是夜阑的狗🐶

  • 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询!

  • 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘

您的点赞、关注、收藏、评论,是对我最大的激励和支持!!!🤩 🤩 🤩

【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八),Git,# Git高级篇,git,gitea,笔记


前言

  大家好,又见面了,我是夜阑的狗🐶,本文是专栏【Git】专栏的第十八篇文章;
  这是今天学习到Git 高级篇 – 提交的技巧 💖💖💖,开启新的征程,记录最美好的时刻🎉,每天进步一点点。
  专栏地址:【Git】 , 此专栏是我是夜阑的狗对Git,Gitee等工具使用过程的总结,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。
  如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。


一、提交的技巧

  这里给大家推荐一个好用的 Git在线练习地址。在这练习网站里面也有自己的教程,就让我们一步一步跟着教程学习吧,记录下自己的所感所悟。前面已经简单的讲解了整理提交记录的用法,在实际开发过程中有时候想把修改其中不是最新的 commit,这让我们很困扰,接下来就让我们看看下面是怎么解决的吧。话不多说,让我们原文再续,书接上回吧。

【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八),Git,# Git高级篇,git,gitea,笔记

1、介绍

  接下来这种情况也是很常见的:你之前在 newImage 分支上进行了一次提交,然后又基于它创建了 caption 分支,然后又提交了一次。
  此时你想对某个以前的提交记录进行一些小小的调整。比如设计师想修改一下 newImage 中图片的分辨率,尽管那个提交记录并不是最新的了。

2、示范

  我们可以通过以下步骤来进行解决:

  • Step 1、先用 git rebase -i 将提交重新排序,然后把我们想要修改的提交记录挪到最前;
  • Step 2、然后用 git commit --amend 来进行一些小修改;
  • Step 3、接着再用 git rebase -i 来将他们调回原来的顺序;
  • Step 4、最后我们把 main 移到修改的最前端(用你自己喜欢的方法),就大功告成啦!

  当然完成这个任务的方法不止上面提到的一种(也可以通过 cherry-pick 来进行解决),之后我们会多点关注这些技巧啦,但现阶段先讲解上面这种方法。 最后有必要说明一下目标状态中的那几个’ —— 我们把这个提交移动了两次,每移动一次会产生一个 ';而 C2 上多出来的那个是我们在使用了 amend 参数提交时产生的,所以最终结果就是这样了。
  也就是说,我在对比结果的时候只会对比提交树的结构,对于 ’ 的数量上的不同,并不纳入对比范围内。只要你的 main 分支结构与目标结构相同,就算通过啦。

3、实战

  从前面了解到具体的实现的步骤,就可以开始实战啦。这里先给大家说一下这个练习网站的一些使用技巧,

  • help 指令

  执行这个命令后就会有个帮助信息的弹窗。

【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八),Git,# Git高级篇,git,gitea,笔记

  • levels 指令

  执行完这个命令之后就能看到关卡目录了。

【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八),Git,# Git高级篇,git,gitea,笔记

  • 目标

【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八),Git,# Git高级篇,git,gitea,笔记

  • 开始结构

【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八),Git,# Git高级篇,git,gitea,笔记

(1)第一种方法:rebase
  • Step 1、重新排序

  首先我们需要将提交重新排序, 然后把想要修改的提交记录挪在最前面。

git rebase -i HEAD~2

  运行结果如下图所示:

【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八),Git,# Git高级篇,git,gitea,笔记

  • Step 2、修改提交

  使用 commitamend 参数来对提交记录进行修改。

git commit --amend

  运行结果如下图所示:

【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八),Git,# Git高级篇,git,gitea,笔记

  • Step 3、调回顺序

  修改完提交记录后,在把提交顺序重新调整回去。

git rebase -i HEAD~2

  运行结果如下图所示:

【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八),Git,# Git高级篇,git,gitea,笔记

  • Step 4、合并main

  最后将改动重新合并到 main 分支中。

git rebase caption main

  运行结果如下图所示:

【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八),Git,# Git高级篇,git,gitea,笔记

  达成目标之后就会有成功的提示。

【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八),Git,# Git高级篇,git,gitea,笔记

(2)第二种方法:cherry-pick

  前面也说到了,除了用 rebase -i 外,还要其他方法,接下来就来讲讲怎么用 cherry-pick 来实现吧,注意:本方法不是适用于通该关,因为网址作者限制了在本关使用 cherry-pick 命令。 所以我们只能去非 DEMO 版本是实现了。

【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八),Git,# Git高级篇,git,gitea,笔记
  网址的 非 DEMO 版本 这个连接点击进入,进入之后立马只有 main 分支,需要我们去搭建题目环境,以下就是搭建题目环境的命令。
【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八),Git,# Git高级篇,git,gitea,笔记

git checkout -b newImage
git commit
git checkout -b JMFive
git commit

  通过以上命令就可以得到跟题目一样的分支了,这样我们就可以开始解决问题啦,运行结果如下图所示:

【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八),Git,# Git高级篇,git,gitea,笔记

  • Step 1、指向main哈希值

  这里需要分离 HEAD 状态,不建议直接指向 main 分支进行操作,而是通过操作 HEAD 指针,最后在把 HEAD 合并到 main 分支即可。

git checkout C1

  运行结果如下图所示:

【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八),Git,# Git高级篇,git,gitea,笔记

  • Step 2、选择需修改的分支

  通过 cherry-pick 选择需要修改分支,生成出新的分支。

git cherry-pick C2

  运行结果如下图所示:

【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八),Git,# Git高级篇,git,gitea,笔记

  • Step 3、修改提交

  使用 commitamend 参数来对提交记录进行修改。

git commit --amend

  运行结果如下图所示:

【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八),Git,# Git高级篇,git,gitea,笔记

  • Step 4、指向 main

  将 分离 HEAD 状态重新指向 main 分支。

git checkout main

  运行结果如下图所示:

【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八),Git,# Git高级篇,git,gitea,笔记

  • Step 5、合并 main

  最后将改动重新合并到 main 分支中。

git cherry-pick C2'' C3

  运行结果如下图所示:

【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八),Git,# Git高级篇,git,gitea,笔记


总结

  感谢观看,如果觉得有帮助,请给文章点个赞吧,让更多的人看到。🌹 🌹 🌹

【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八),Git,# Git高级篇,git,gitea,笔记

  也欢迎你,关注我。👍 👍 👍

  原创不易,还希望各位大佬支持一下,你们的点赞、收藏和留言对我真的很重要!!!💕 💕 💕 最后,本文仍有许多不足之处,欢迎各位认真读完文章的小伙伴们随时私信交流、批评指正!下期再见。🎉

更多专栏订阅:

  • 😀 【LeetCode题解(持续更新中)】
  • 🌼 【鸿蒙系统】
  • 👑 【Python脚本笔记】
  • 🚝 【Java Web项目构建过程】
  • 💛 【微信小程序开发教程】
  • 【JavaScript随手笔记】
  • 🤩 【大数据学习笔记(华为云)】
  • 🦄 【程序错误解决方法(建议收藏)】
  • 🚀 【软件安装教程】



订阅更多,你们将会看到更多的优质内容!!文章来源地址https://www.toymoban.com/news/detail-855413.html

到了这里,关于【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 有趣且重要的Git知识合集(8)git commit 重新提交(—amend —no-edit)

    当我们已经 commit提交过一次 了,然后发现还有些代码没改完,这个时候,很多童鞋都会考虑,再commit一次就行了,但是在git记录中就会出现两条commit,其实问题不大,但是如果有很多这种情况,就会使git变得混乱不堪,那么此时最好的情况,就是将 多条commit合并在一起 示例

    2024年02月16日
    浏览(43)
  • 【随笔】Git 高级篇 -- 推送主分支 git rebase & git fetch(三十三)

    💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘 您的点赞、关注、收藏、评论,是对我最大

    2024年04月23日
    浏览(46)
  • 【随笔】Git -- 解决提交时本地与目标分支不一致导致提交失败 stash & pull --rebase(三)

    💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘 您的点赞、关注、收藏、评论,是对我最大

    2024年04月27日
    浏览(53)
  • 【随笔】Git 高级篇 -- 纠缠不清的分支 rebase | cherry-pick(二十四)

    💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘 您的点赞、关注、收藏、评论,是对我最大

    2024年04月12日
    浏览(48)
  • IDEA中使用Amend Commit,提交master只有一条提交记录

    1. 问题 在IDEA中使用amend commit后,直接点击push,会先执行fetch命令,将远端代码和本地代码进行marge。结果还是会生成多条提交记录,没有达到只提交一条新的commit记录到master分支的目的。 2. 解决方法 (1)在IDEA中使用amend commit将所有的提交记录合并成一条 (2)在git-bash中强

    2024年02月11日
    浏览(40)
  • 【随笔】Git 高级篇 -- 整理提交记录(上)cherry-pick(十五)

    💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘   大家好,又见面了,我是夜阑的狗🐶,

    2024年04月10日
    浏览(39)
  • 《Git常用命令》详细讲解·第4篇(git commit -m “commit message“和git commit --amend)

    提交所有更新 提交所有更新过的文件——git commit -m “commit message” 是一个Git命令,用于将暂存区的更改提交到本地仓库。 -m 选项后面跟着的是本次提交的描述信息,即commit message。这个信息应该清晰地表明所做的更改。 示例: 提交更改到本地仓库: 在这个例子中,我们提

    2024年04月28日
    浏览(44)
  • 【随笔】Git 基础篇 -- 分支与合并 git rebase(十)

    💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘 您的点赞、关注、收藏、评论,是对我最大

    2024年04月14日
    浏览(37)
  • git rebase合并多个commit记录

    在做一个需求的时候,会出现多次提交记录,如下: 其中,发现中间有三次提交的记录一致,是可以合并成一次commit的 下面开始合并: 1.找到要合并的commit 命令 其中 -i 的意思是–interact,即弹出交互式的界面让用户编辑完成合并操作 [startpoint] [endpoint]是前开后闭的区间 [

    2024年02月07日
    浏览(40)
  • 使用 git rebase 合并多个 commit

    首先我们查看一下当前提交历史: 我们通过 git rebase -i 61e7d87 将 44f23cb 、 9d2725f 和 da3ba01 这三个提交合并,这里的 61e7d87 为 待合并的提交区间的前一个提交的哈希值 。 执行之后会进入到 vim 编辑器中,每一行代表一个 todo 项。我们这里需要 pick 第一个提交并将后面两个提交

    2024年01月25日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包