问题标签 [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 投票
2 回答
5075 浏览

git - git fake merge (将提交标记为合并而没有真正的合并)

假设我的存储库中有以下历史记录:

我想将其修改为:

我不想修改修订的文件内容,我只想“画一个合并箭头”。我怎样才能做到这一点?

我试图通过以下命令来做到这一点:

但我收到以下错误消息:

我想保持提交信息不变(作者、日期、消息)。我唯一要更改的是将伪合并信息添加到提交中。

0 投票
3 回答
13113 浏览

git - 如何以编程方式编辑旧的 git 提交消息?

您只能以编程方式编辑最后一条提交消息:

或以交互方式随机提交:

我如何将两者结合起来?我想以编程方式更改消息,但要更改为先前的提交,而不仅仅是最后一个。

我要修改的提交已经推送到 git 服务器,但让其他人重新同步 git 项目不是问题。

0 投票
2 回答
678 浏览

git - git 更改提交消息(修改)

我处于一种情况,我想编辑旧的、已经推送的代码的提交消息。就我而言,当然,我的主分支和其他几个分支,例如 v1.0、v2.0 和 v3.0。我要更新其消息的提交是在分支 v1.0 是“主”时进行的。在我的代码的每个新版本中,我还在每个分支上放置一个标签以启动,然后再进行不同的修复(1.0、1.1 等)。例如,在分支 v1.0 中,我有一个标记为 1.1 的修复(代表新版本)。在我的情况下,提交消息出现的代码位于标签 1.0 下。我尝试了这里描述的整个过程https://help.github.com/articles/chang-a-commit-message/(修改旧的或多个提交消息的消息)但我仍然显示提交消息出现在标签 1.0 的“下方”(我使用的是 SmartGit,这就是我说“低于”的原因)。如果我键入git show commit_id,我仍然会看到带有旧消息的提交...

有人知道如何从 git 中完全删除此提交消息吗?提前感谢您的回复。

(我对 git 不是很好,所以现在我只是想按照互联网上给出的解释......)

也许我可以重新创建存储库并更改这些提交消息,同时保留存储库的其余历史记录?有人可能已经这样做了?:)

0 投票
1 回答
224 浏览

git - Git:如何修改 HEAD^^ 提交的内容(不是提交消息)

假设我从事以下工作:

  • 功能 1:文件 1 + 文件 3
  • 功能2:文件2

我有以下提交

  • 提交 2:功能 2 已完成。
  • 提交 1:功能 1 已完成。

我做的错误是我忘记将file3添加到commit 1。如何将file3的更改添加到commit 1?

一种方法是:

我不想要这种方式是因为实际上我可能不仅有提交 2,而且还有提交 3、4、5、6 ......

还有其他简单的方法吗?

谢谢

0 投票
2 回答
111 浏览

git - Git rebase:通过运行命令修复

我在一个分支上,在我的分支之前有许多提交(在一条直线上)develop,并且在每个提交消息中都是我正在处理的问题跟踪票的名称。现在我想通过每次提交重新设置基础并将该票证的名称更改为不同的票证,概念上类似于:

有没有办法告诉 rebase 的reword操作,而不是打开交互式编辑器,而是要在消息文本上运行命令?

我想出的最好的办法是exec在每次提交运行git commit --amend并将$EDITOR变量更改为上述命令或其他内容之后执行一个操作,但这非常可怕。

如果没有一个好的自动解决方案,我通常会reword在每次提交时执行一个操作并手动编辑所有消息。

0 投票
1 回答
297 浏览

git - 使用修改选项了解 git commit

假设我有一个文件'A'我已经修改了文件并通过以下命令将其推送到存储库

后来我意识到我需要更改文件'B',所以我修改了它并运行了以下命令

但我得到错误..

我应该怎么做才能克服这个错误

0 投票
3 回答
361 浏览

git - 如何撤消多个“git commit --amend”或为每个修改提交获取差异?

我错误地做了超过 100 次修改提交。我怎样才能将它们转换为通常的提交?或者至少要为每个修改提交获得不同的 git log?gitk如果我运行或git log -p现在,我一次只能看到所有修改提交的区别。我可以看到所有修改提交的哈希值,但只能使用 reflog。我也可以看到区别,git diff amend_hash1 amend_hash2但不是 in gitkor git log -p。尽管它们在.git/logs/refs/heads/master.git/logs/HEAD

我只跑了git commit --amend100 次,每 100 次更改一次。然后,当我在没有修改的情况下运行 git commit 时,我对所有 100 个更改都进行了一次大提交。

我发现如何只撤消一个修改提交......

0 投票
1 回答
43 浏览

git - 我可以使用 Git 中的“修改上次提交”将更改转移到另一个分支吗?

我不小心在错误的分支中进行了提交,但由于我可以修改,我正在考虑是否可以使用它将更改转移到正确的分支。我可以更改分支并在那里进行修改,还是将其应用于提交它的同一分支?

0 投票
0 回答
51 浏览

git - 使用原始 COMMITTER_DATE 更改提交消息

我有一个 GIT 存储库,想更改一次提交的消息。我做了以下命令:

不幸的是,所有后续提交的日期都发生了变化。我想保留原始值COMMITTER_DATE

怎么做?提前致谢!

0 投票
3 回答
346 浏览

git - 在没有打开编辑器窗口的情况下修改 Mercurial 提交?

当我使用 mercurial 命令 ( hg commit --amend) 时,它总是会打开编辑器窗口。在 git 中我可以避免这种情况git commit -a --amend -CHEAD,是否有与 mercurial 等价的东西?