如何签出旧提交并将其设为新提交

2024-01-10

我想“跟进”关于此事的另一个问题:签出旧提交并将其设为新提交 https://stackoverflow.com/questions/3380805/checkout-old-commit-and-make-it-a-new-commit

但他们说“不要这样做!”所以看来我必须问一个新问题。 (尽管这是同一个问题,但我认为最适合我的答案却没有按预期工作......

如果我有承诺A-B-C-D-E-F(想象一下这些都是 SHA)。 我想让整个存储库完全一样C然后提交以创建'G'这完全就像C。这样,当我完成时,日志是 A-B-C-D-E-F-G,即使 C 和 G 是相同的。

一个答案表明择优挑选,这看起来很完美,但它让我解决了之间的所有冲突C and F。我查看了文档并尝试了--force无论如何,然后推荐--patch. --patch是最接近的,但不是绝对的。那么有没有一种方法可以让cherry-pick只选择C版本冲突?

另一个最接近的答案是结账C,但我找不到将其保留在同一分支上的神奇词。我最近完成的培训说使用最后的“magic dash dash”来告诉git您希望在当前分支上执行此操作,但无论我做什么,它都会创建一个“(无分支)”分支。

我相信你可以看出,我对 git (以及一般的命令行)还很陌生,但我试图自己解决这个问题。如果您可以使用您推荐的详细版本,那么它会更好地留在我的脑海中,我将不胜感激。 (-a = --all or -a = --annotate or -a = --albuquerque?)

这看起来很简单,而且正是您可能想要使用 git 做的事情——返回之前的提交,而不会丢失中间提交,以防万一您改变主意。


你介意生成:A-B-C-D-E-F-F'-E'-D'代码的状态在哪里D'和原来一样C (so G == D')?在这种情况下,只需恢复F, E, and D。如果您不需要中间步骤,revert但不要申请,然后提交。那是:

$ git revert -n HEAD
$ git revert -n HEAD~
$ git revert -n HEAD~2
$ git commit -m 'Revert D,E,and F'

此后,当前 HEAD 为 G,两次提交 G 和 C 应该包含相同的代码树。您可以通过检查输出来验证git cat-file -p HEAD | grep ^tree and git cat-file -p C | grep ^tree。这两个命令应该给出相同的输出。

但目前还不清楚为什么要保留中间提交。如果您想让它们留给后代,请执行以下操作:git branch old-stuff, git reset C这会将您当前的分支设置回C, but D, E, and F仍然可以在名为的分支中查看old-stuff.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何签出旧提交并将其设为新提交 的相关文章

  • Git 子模块在 Windows 上更新缓慢

    Git 子模块在 Windows 上似乎非常慢 为了测试性能 我创建了 3 个裸存储库并向它们提交了 3 条独立消息 未存储文件 然后 我将每个裸存储库作为子模块添加到新的 git 存储库中 并执行子模块更新 花费了 5 秒多的时间 当使用
  • Git 显示更改后的相同文件

    当我似乎无法弄清楚更改时 Git 向我显示整个文件已更改 这是 cygwin git 但它也发生在 msysgit 中 git version git version 2 1 1 diff lt git show HEAD File cs
  • Hudson 结帐卡在“git fetch”处

    我正在使用 git 版本 1 6 2 2 1669 g7eaf8 在 Hudson 1 314 上使用 Hudson Git 插件 0 7 3 当我触发构建时 Hudson 执行 git fetch 但它永远不会返回 我把一只卡在那里14天
  • Git 拉回 master 中的提交?

    一位同事 我们称之为亚伦 被指派翻新网站的一部分作为长期项目 他创建了一个新的 Git 分支 名为aaron 他所有的改变都是在这个分支上进行的 当他工作时 我继续维护整个网站 将我的更改提交给master 最终 Aaron 将他的分支合并
  • GIT 中的重复合并。它如何计算差异?

    我一直在做一项研究 试图了解 GIT 合并是如何工作的 我知道有几种合并类型 如递归 章鱼等 我发现解析 递归是最常用的 并且递归合并仅在存在多个共同祖先 基础时才有用 但是 我找不到从分支重复合并到主节点时使用哪种算法 或者如何计算祖先
  • 从分离的头进行 Git 推送

    我以超然的态度做出了一些改变 我想用 Git 将这些更改推送到这个独立的头 我不希望我的更改进入开发分支 当然也不想进入主分支 我正在与另一个人一起处理一个文件 分支示例 develop master HEAD detached at or
  • git-svn --忽略路径

    我现在在 git svn 的 ignore paths 选项上挣扎了几个小时 试图从大型存储库中仅获取某些标签 我想在 dev 处开始获取 看起来像 gt svn ls http 192 168 0 2 svn repo corporati
  • 如何像对待普通目录一样对待嵌套存储库(子模块)?

    我的 WordPress 网站是使用 Git 进行版本控制的 包括wp content plugins 文件夹 现在有一个插件 wp editormd 带有自己的 Git 存储库 wp content plugins wp editormd
  • 有没有办法列出Git中未修改的文件?

    我从另一个来源以 tarball 的形式获取了一些更改 我想知道哪些文件没有更改 目标是 Git 克隆 因此可以轻松查看新增内容和更改内容 有人知道如何获取未更改内容的列表 不包括未跟踪的内容 吗 编辑 换句话说 我希望利用 Git 来查找
  • 我可以通过链接分享我的私人 GitHub 存储库吗?

    我在 GitHub 上的私人存储库中有一个 Java 应用程序 我想与没有帐户的人共享它 我在网站上没有找到任何与此相关的选项 有没有办法做到这一点 协作者只能是 GitHub 用户 无法在非 Github 用户之间共享私有存储库 您需要
  • 警告:您的 git 版本是 1.9.3。存在严重的安全漏洞

    我在部署到 Heroku 期间收到有关 git 1 9 3 严重安全漏洞的警告 我尝试通过 homebrew 更新 git 但发现 git 最初并不是通过 homebrew 安装的 然后我通过自制程序安装了它 brew update bre
  • Windows 版 GitKraken 中的文件名太长

    正如建议的Q22575737 https stackoverflow com a 22575737 6623589 我已经更新了我的注册表并设置了git config system core longpaths true在处理长路径时 问题
  • git 可以与 Xcode 集成吗?

    有没有办法将 git 存储库与 Xcode 内置的 SCM 功能一起使用 Xcode 4 原生支持 git WWDC 2010 上的开发者工具国情咨文演讲 在这里了解更多 Xcode 4 中的新增功能 http developer appl
  • 使用 TFS 个人访问令牌克隆 Git 存储库

    我正在尝试以编程方式克隆 git 存储库 我的 ASP NET MVC 应用程序正在创建并启动一个进程 处理进程的代码工作正常 但是当尝试使用本地 TFS PAT 克隆 git 存储库时 身份验证失败 我无法使用 NTLM 或要求用户输入凭
  • IntelliJ:查看本地和 git 提交/分支之间所有已更改文件的差异

    使用 IntelliJ 的 diff 查看器是检查代码的一种非常好的方法 因为您可以使用 IntelliJ 代码编辑器的所有功能 重构 完成等 在本地版本中进行更改 不幸的是 我还没有弄清楚当你在 IntelliJ 中进行代码审查时如何做最
  • 如何从 android.googlesource.com 或 github.com 下载单个目录?

    我想下载 https android googlesource com platform frameworks base git master tools aapt https android googlesource com platfo
  • git diff - 只显示哪些目录发生了变化

    有没有办法只列出已更改的目录 如果我在 git root 的话 project 我更改的文件是 project subtool file1 project subtool file2 project subtool3 file1 我只是想
  • git push heroku master 权限被拒绝

    我正在关注 ruby railstutorial 我运行命令 git push heroku master 它吐出了这个错误 Permission denied publickey fatal Could not read from rem
  • 如何 git grep 仅一组文件扩展名

    如何执行 git grep 并将检查的文件限制为一组文件 我希望能够 grep cpp 和 h 文件的内容来查找 MyFunc 例如 git grep MyFunc hc 但是 这也匹配 c 文件和 cs 文件 Use git grep M
  • 自动将所有 GitHub 存储库镜像到 gitlab

    对于 GitLab 必须手动为每个存储库设置拉 推镜像 我想知道那里有any way可以自动将所有 Github 存储库同步到 GitLab 这样 当您在 GitHub 中创建新的存储库时 GitLab 中的存储库将自动创建 并充当拉取镜像

随机推荐

  • 在Python中使用有序字典作为对象字典

    我不知道为什么这不起作用 我正在使用odict http dev pocoo org hg sandbox raw file tip odict py班级来自PEP 372 http www python org dev peps pep
  • C# 加载二进制文件

    请告诉我最好 最快的方法 1 将非常小的二进制文件加载到内存中 例如图标 2 加载 读取大小为 512Mb 的非常大的二进制文件 3 当您不想考虑大小 速度而只需要做一件事时 您的常见选择 将所有字节读入内存 谢谢你 附 抱歉 也许是一个微
  • 检查JTA事务是否成功提交

    有没有办法检查当前事务是否在 JPA 实体侦听器中提交 如下所示 ApplicationScoped public class EntityListener Inject private Event
  • 如何从 JSON 回复中提取有意义的信息? [复制]

    这个问题在这里已经有答案了 回复 印度孟买 response version 0 1 termsofService http www wunderground com weather api d terms html features ge
  • ruby中通过ioctl获取essid

    为了避免依赖无线工具 我想使用 ioctl 直接从设备获取 essid 在 C 中这不会是问题 但在 Ruby 中则完全不同 问题在于以下结构无线 h用作 ioctl 的输入 回复 struct iw point void user poi
  • 在python中将字典转换为二进制

    我有一本字典 其中键作为我的客户 ID 值作为我的电影 ID 尽管客户已经多次观看同一部电影 但我希望将其制作为一部电影 这里我需要将我的字典转换为二进制数据 在所有行中 我需要客户 ID 和列作为电影 ID 如果客户看过电影 则给出 1
  • 如何删除默认的 Bootstrap 3 轮播控件背景渐变?

    我很确定这是我需要修改的代码 但由于某种原因我无法让渐变在 IE 中消失 我要他们彻底消失 carousel control text shadow none opacity 1 filter alpha opacity 100 carou
  • Pandas Groupby Agg 功能不减少

    我正在使用我在工作中已经使用了很长时间的聚合函数 这个想法是 如果传递给函数的系列的长度为 1 即该组只有一个观察值 则返回该观察值 如果传递的系列的长度大于 1 则观察结果将以列表形式返回 这对某些人来说可能看起来很奇怪 但这不是一个 X
  • (Tomcat) 部署时备份 WAR

    是否有任何内置机制可以在 Tomcat 中部署时备份 war 文件 例如 我部署了 whosit war 我想要当前部署的 whosit war 备份到 whosit backup war 或者 如果每个部署在 whosit deploy
  • 计算一个字符串在另一个字符串中出现的次数

    我有一个指向 CSS 文件的字符串 css style css 我想知道有多少 都在字符串之内 我如何用 JavaScript 得到这个 对于这个简单的情况 您不需要正则表达式 var haystack css style css var
  • 如何根据给定的文件夹名称创建多个目录

    我有一个文件列表 这些文件的名称由类组和 ID 组成 eg science 000000001 java 我能够获取所有文件的名称并将它们拆分 因此我将类组放入一个数组中 将 id 放入另一个数组中 我拥有它 以便数组不能有两个相同的值 这
  • 使用带有remote: true 的ajax 的Ruby 表单会给出ActionController::InvalidAuthenticityToken 错误。经典提交不

    我正在为 RoR 网站编写聊天页面 我已经用 HTML 解决了所有问题 并且正在尝试使用 ajax 来实现它 有一个用于提交消息的表格 表单标签读取 我的整个看法 br div align center br span span div
  • Oracle 替换功能

    我需要在选择查询时从表 2 的值中替换表 1 的字段值 Eg Table1 Org Permission Company1 1 3 7 Company2 1 3 8 Table2 Permission Permission 1 Read 3
  • Swiper spaceBetween 无法正常工作

    我正在尝试使用slidesPerView auto with spaceBetween 20财产 但是Swiper https idangero us swiper api 每个视图仅显示一张幻灯片 我想在第一张幻灯片之后显示下一张幻灯片
  • 使用 X,Y 坐标绘制圆内的点

    javascript中有没有一种方法可以绘制x y坐标 使它们落入圆形而不是方形 例如 如果我有以下代码 circleRadius 100 context drawImage img elem dx dy dw dh 我需要计算出落在 10
  • 不安全的指针迭代和位图 - 为什么 UInt64 更快?

    我一直在做一些不安全的位图操作 并发现减少指针的增加次数可以带来一些重大的性能改进 我不确定为什么会这样 即使您在循环中进行了更多的按位运算 但最好还是在指针上进行更少的迭代 例如 不要使用 UInt32 迭代 32 位像素 而是使用 UI
  • Web服务使用kso​​ap方法从应用程序接收空参数

    我见过讨论这个问题的主题 但似乎没有人发布解决方案 目前 我正在测试将参数传递给我的 Net Web 服务 当参数到达 Web 服务时 它会添加一个附加字符串 然后将其返回到我的应用程序 但我返回的只是字符串消息 而不是我传递的参数 我的网
  • 如何在 jasper (iReport) 报告上显示阿拉伯语、希伯来语等语言字体

    我有这个简单的表格报告 其中包含许多不同类型的列 但是当打印报告时rtf 字 扩大 带有数字或日期的列appears on the report 包含阿拉伯语内容的栏目appear on the report 但是当打印报告时PDF扩大 带
  • 如何更改 .NET MAUI 中 TabBar 的选项卡标题字体

    在我的 AppShell xaml 中 我有以下 TabBar 代码 我似乎找不到允许我更改标题字体 和字体大小等 的属性或任何内容
  • 如何签出旧提交并将其设为新提交

    我想 跟进 关于此事的另一个问题 签出旧提交并将其设为新提交 https stackoverflow com questions 3380805 checkout old commit and make it a new commit 但他