问题标签 [git-amend]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5038 浏览

git - 如果我推送一个修改过的提交,它会创建一个新的提交吗?

我已经在远程分支上推送了一个提交,现在我想更改它的内容,所以我尝试了git amend.

如果这样做git status,则表示两个分支分别有 1 个和 1 个不同的提交。

现在,如果我使用相同的提交消息推送修改后的提交,那会添加一个新的提交还是会更改我推送的最后一个提交?

0 投票
2 回答
92 浏览

git - 修改 GIT 中的注释

我已经在我的本地分支中完成了我的代码开发,并添加了如图所示的提交注释(临时,temp2),我认为我可以在推送到远程存储库之前重新设置和修改提交消息。但是在这两次提交之后,我从远程存储库中提取并与我的本地分支合并。但在那之后,我无法在合并之前重新调整特定提交,以便我可以编辑提交消息。我正在使用 sourcetree 作为 GIT 的客户端。在我推送之前有什么方法可以编辑这些提交消息吗?

在此处输入图像描述

在此处输入图像描述

0 投票
2 回答
820 浏览

git - 软重置和修改后返回上次提交

我有 2 次提交(本地),我的历史是:A - B

  • 在提交 A 中,文件myfile_v1.txt
  • 在提交 B 中,多个其他文件。
  • 在我的工作目录中,我更新了第一个提交的文件,并进行了小修正:myfile_v2.txt

我想修改提交 A 并以新形式替换文件,以便在推送任何内容之前有一个干净的历史记录。

我这样做了:

  • reset --soft在一个
  • add myfile_v2.txt
  • commit --amend

现在我可以看到我的提交 A 中有更正的文件,但我不知道如何返回到我以前的 HEAD ,也不知道如果不再次提交 B 是否可能。

有任何想法吗?

0 投票
1 回答
4816 浏览

git - 更改特定提交的提交消息

注意:与此类似的问题,但有一些重要的变化。

给定提交 ID,我有以下函数来重写提交日期:

我正在尝试实现类似的功能rewrite-commit-message来更改提交消息。我想要的是:

  1. 该函数rewrite-commit-message接受两个参数:commit_idnew_commit_message
  2. 无需知道旧的提交信息:拥有commit_id就足以知道要更改哪个提交
  3. git commit --amend,因为这与旧提交有关(不一定与最近的提交有关)
  4. 不用担心重写历史和主仓库:我在一个特性分支工作,我可以这样做git push -f
  5. 我想用filter-branch这个,但我不知道如何:
    • 将更改应用到特定的提交:函数中使用test的是 in ,但我不打算在这里做,因为我不想更改与提交环境相关的任何内容,而是更改提交消息。rewrite-commit-dateenv-filterenv-filter
    • 如何强制提交消息?需要原始--msg-filter提交消息。我不关心原始提交消息。有没有--force-msg-filter类似的?

我正在寻找的内容与类似,但有一些警告:

  1. 不要将更改应用于一系列提交,而是应用于特定提交
  2. 我不关心原始提交消息,因为我想完全覆盖它
0 投票
1 回答
874 浏览

git - 我如何知道 git commit 是否已更改?

几个月前有人犯了罪。之后,已经完成了多个其他提交。是否可以通过修改或变基来查看是否有人更改了该特定提交的内容?如果是,如何?

0 投票
3 回答
931 浏览

commit - 修改 Fossil 中的提交

在 Git 中,要更改当前分支上的最新提交,请--amend使用git-commit.

Fossil中最近的操作是什么?有没有办法将 GPG 签名添加到未签名的提交(git commit --amend -S)?

0 投票
3 回答
1239 浏览

git - 我修改而不是解决交互式变基中的冲突。我可以撤消吗?

我正在做一个大型的交互式 rebase,我正在编辑类似 8 个提交的内容。这是用git commit --amend. 我的问题是,有一次我遇到了一个我没有注意到的合并冲突,所以我继续天真地修改和git rebase --continue-ing。显然,我现在已经将多个提交修改为一个,并且在完成 rebase 后,我的大约 4 个提交消失了。这些更改已被修改为其他提交。

我有什么办法可以撤消这些修改,或者重新应用已经消失的提交?

当然; 一种解决方案是返回并再次进行 rebase,但我在 rebase 中做了很多编辑,所以我希望不必重新做所有的工作。我如何陷入这种困境是另一回事。

Git 树示例:

变基之前:A-B-C-D-E-F

变基后:A-B-C-F(C 现在修改了 D 和 E 的变化)

0 投票
1 回答
1122 浏览

git - 修改旧的推送提交消息是否安全?

我正在关注文档以修改已推送的提交消息。我现在有我的本地分支,其中包含修改后的消息,以及修改后的所有提交的副本。

我确信其他人已经取消了这些提交。

推送我的本地分支是否安全?对其他人会有什么后果?

0 投票
1 回答
763 浏览

git - 如何修复远程分支头部的 git commit --amend?

我有时会犯这个 git 错误,而且非常烦人。我想知道社区中是否有人对当你不小心在远程分支的头部进行提交 --amend 时该怎么做有想法。现在我最终做了一个拉,对比我自己的部分更改,然后推送,导致 HEAD 上出现重复的提交消息。

为清楚起见,我问的是解决以下问题的最佳方法:

  1. 拉取远程分支(例如 master)
  2. 做出改变
  3. 提交——修改更改
  4. 尝试推,被拒绝
  5. 诅咒自己和/或神
0 投票
2 回答
2072 浏览

git - 在 Gerrit 中将补丁集添加到其他人的提交

所以我试图将一些文件添加到其他人的提交中。

具体来说,我正在使用 Jenkins 运行一些测试,当它们完成后,我想将测试的结果文件修改为原始提交,这样如果提交被成功审查和合并,测试结果将被合并。

现在我有一个 build.sh 脚本,它将由 jenkins 执行(jenkins 会在每次推送到 gerrit 的提交时自动触发):

问题是这失败了。这是将文件修改为其他人提交的正确方法吗?

谢谢你的帮助