首页 > 其他分享 >Git改变历史-章节笔记

Git改变历史-章节笔记

时间:2024-06-21 12:33:16浏览次数:15  
标签:章节 HEAD git 哈希 -- 笔记 Git 提交 checkout

Git 改变历史

悔棋

修改最近一次提交信息

git commit --amend
除了想要修改最近一次提交信息外,另一个用处是生成Change-ID。在克隆了代码和钩子文件后,如果代码提交中没有Change-ID,而后续需要提交到gerrit无法自动生成Change-ID报错时,使用此命令。

修改最近一次提交中的文件

git checkout HEAD^ -- helloworld.c 检出
修改
git commit --amend -m "commit with --amend helloworld.c"提交

多步悔棋

git reset --soft HEAD^^想把几个提交合一就会退几步
git commit -m "modify helloworld.c"提交

穿越

  • 删除某次提交,后续不变
  • 合并历史中的几次提交,后续不变

拣选操作

拣选操作 cherry-pick

删除某提交
git checkout 要删除提交前的哈希值
git cherry-pick 一个一个后续提交
git checkout master 切回master
git reset --hard HEAD@{1} HEAD@{1}就是之前cherry-pick后的HEAD
cherry-pick的哈希值 之后修改的内容相同但是提交的哈希值不同
合并某两次提交
git checkout 要合并提交的哈希值
git reset --soft HEAD^^ 回到两次提交前
git commit 提交信息
git cherry-pick 一个一个后续提交
git checkout master 切回master
git reset --hard HEAD@{1} HEAD@{1}就是之前cherry-pick后的HEAD

变基操作 rebase

比如将ABCDEF变成ABCEF
git rebase --onto <newbase> <since> <till>
<newbase> 是C的哈希值
<since> 是E^的哈希值(从这里开始但是不包括这个
<till> 是F的哈希值(到这里结束包括这个
git checkout master
git reset --hard HEAD@{1}

比如将ABCDEF变成AB(CD)EF
git checkout D的哈希值
git reset --soft HEAD^^ 退到B了
git commit 提交信息 记住提交的哈希值xxx
git rebase --onto xxx E^ master

标签:章节,HEAD,git,哈希,--,笔记,Git,提交,checkout
From: https://www.cnblogs.com/moyuu/p/18259947

相关文章

  • 【论文笔记】Parameter-Effificient Transfer Learning for NLP
    题目:Parameter-EffificientTransferLearningforNLP阅读文章目录0.摘要1.引言2AdaptertuningforNLP3实验3.1参数/性能平衡3.2讨论4.相关工作0.摘要克服微调训练不高效的问题,增加一些adapter模块,思想就是固定原始的网络中的参数,针对任务增加一些可以训练......
  • 【论文笔记】Prefix-Tuning: Optimizing Continuous Prompts for Generation
    题目:Prefix-Tuning:OptimizingContinuousPromptsforGeneration来源:ACL2021模型名称:Prefix-Tuning论文链接:https://aclanthology.org/2021.acl-long.353/项目链接:https://github.com/XiangLi1999/PrefixTuning感觉与prompt的想法很相近,那么问题来了,为什......
  • 【TensorFlow深度学习】开源社区支持与GitHub上贡献代码的流程
    开源社区支持与GitHub上贡献代码的流程开源社区支持与GitHub上贡献代码的流程:携手共创软件未来1.开源社区支持的意义2.如何在GitHub上找到合适的项目3.贡献代码的流程3.1.Fork与Clone3.2.创建分支3.3.修改代码3.4.提交与推送3.5.创建PullRequest......
  • Windows的Gitlab Runner搭配的PowerShell脚本:自动下载Directory.Build.props相关文件
    简介GitlabRunner在Windows上运行之后,我们在.gitlab-ci.yml中编写script语句,思路和Linux是一样。但是考虑到Windows的特点,为了让程序员少接触一些知识点,以及给未来执行作业的时候预留更多的操作空间。简单说就是未来修改执行作业时候的逻辑,但是每个软件仓库根目录下的.gitlab-ci......
  • Windows的Gitlab Runner搭配的PowerShell脚本:自动上传网站并配置IIS
    简介GitlabRunner在Windows上运行之后,我们在.gitlab-ci.yml中编写script语句,思路和Linux是一样。但是考虑到Windows的特点,为了让程序员少接触一些知识点,以及给未来执行作业的时候预留更多的操作空间。简单说就是未来修改执行作业时候的逻辑,但是每个软件仓库根目录下的.gitlab-ci......
  • Windows的Gitlab Runner搭配的PowerShell脚本:推送包到NuGet仓库
    简介GitlabRunner在Windows上运行之后,我们在.gitlab-ci.yml中编写script语句,思路和Linux是一样。但是考虑到Windows的特点,为了让程序员少接触一些知识点,以及给未来执行作业的时候预留更多的操作空间。简单说就是未来修改执行作业时候的逻辑,但是每个软件仓库根目录下的.gitlab-ci......
  • Windows的Gitlab Runner搭配的PowerShell脚本:自动下载Directory.Build.props相关文件
    简介GitlabRunner在Windows上运行之后,我们在.gitlab-ci.yml中编写script语句,思路和Linux是一样。但是考虑到Windows的特点,为了让程序员少接触一些知识点,以及给未来执行作业的时候预留更多的操作空间。简单说就是未来修改执行作业时候的逻辑,但是每个软件仓库根目录下的.gitlab-ci......
  • Windows的Gitlab Runner搭配的PowerShell脚本:执行单元测试
    简介GitlabRunner在Windows上运行之后,我们在.gitlab-ci.yml中编写script语句,思路和Linux是一样。但是考虑到Windows的特点,为了让程序员少接触一些知识点,以及给未来执行作业的时候预留更多的操作空间。简单说就是未来修改执行作业时候的逻辑,但是每个软件仓库根目录下的.gitlab-ci......
  • Windows的Gitlab Runner搭配的PowerShell脚本:更新版本号
    简介GitlabRunner在Windows上运行之后,我们在.gitlab-ci.yml中编写script语句,思路和Linux是一样。但是考虑到Windows的特点,为了让程序员少接触一些知识点,以及给未来执行作业的时候预留更多的操作空间。简单说就是未来修改执行作业时候的逻辑,但是每个软件仓库根目录下的.gitlab-ci......
  • Windows的Gitlab Runner搭配的PowerShell脚本:发布传统ASP.NET Web应用程序
    简介GitlabRunner在Windows上运行之后,我们在.gitlab-ci.yml中编写script语句,思路和Linux是一样。但是考虑到Windows的特点,为了让程序员少接触一些知识点,以及给未来执行作业的时候预留更多的操作空间。简单说就是未来修改执行作业时候的逻辑,但是每个软件仓库根目录下的.gitlab-ci......