问题标签 [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.
git - 如果我推送一个修改过的提交,它会创建一个新的提交吗?
我已经在远程分支上推送了一个提交,现在我想更改它的内容,所以我尝试了git amend
.
如果这样做git status
,则表示两个分支分别有 1 个和 1 个不同的提交。
现在,如果我使用相同的提交消息推送修改后的提交,那会添加一个新的提交还是会更改我推送的最后一个提交?
git - 软重置和修改后返回上次提交
我有 2 次提交(本地),我的历史是:A - B:
- 在提交 A 中,文件myfile_v1.txt
- 在提交 B 中,多个其他文件。
- 在我的工作目录中,我更新了第一个提交的文件,并进行了小修正:myfile_v2.txt
我想修改提交 A 并以新形式替换文件,以便在推送任何内容之前有一个干净的历史记录。
我这样做了:
reset --soft
在一个add
myfile_v2.txtcommit --amend
现在我可以看到我的提交 A 中有更正的文件,但我不知道如何返回到我以前的 HEAD ,也不知道如果不再次提交 B 是否可能。
有任何想法吗?
git - 更改特定提交的提交消息
注意:与此类似的问题,但有一些重要的变化。
给定提交 ID,我有以下函数来重写提交日期:
我正在尝试实现类似的功能rewrite-commit-message
来更改提交消息。我想要的是:
- 该函数
rewrite-commit-message
接受两个参数:commit_id
和new_commit_message
- 无需知道旧的提交信息:拥有
commit_id
就足以知道要更改哪个提交 - 不
git commit --amend
,因为这与旧提交有关(不一定与最近的提交有关) - 不用担心重写历史和主仓库:我在一个特性分支工作,我可以这样做
git push -f
- 我想用
filter-branch
这个,但我不知道如何:- 将更改应用到特定的提交:函数中使用
test
的是 in ,但我不打算在这里做,因为我不想更改与提交环境相关的任何内容,而是更改提交消息。rewrite-commit-date
env-filter
env-filter
- 如何强制提交消息?需要原始
--msg-filter
提交消息。我不关心原始提交消息。有没有--force-msg-filter
类似的?
- 将更改应用到特定的提交:函数中使用
我正在寻找的内容与此类似,但有一些警告:
- 不要将更改应用于一系列提交,而是应用于特定提交
- 我不关心原始提交消息,因为我想完全覆盖它
git - 我如何知道 git commit 是否已更改?
几个月前有人犯了罪。之后,已经完成了多个其他提交。是否可以通过修改或变基来查看是否有人更改了该特定提交的内容?如果是,如何?
commit - 修改 Fossil 中的提交
在 Git 中,要更改当前分支上的最新提交,请--amend
使用git-commit
.
Fossil中最近的操作是什么?有没有办法将 GPG 签名添加到未签名的提交(git commit --amend -S
)?
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 的变化)
git - 如何修复远程分支头部的 git commit --amend?
我有时会犯这个 git 错误,而且非常烦人。我想知道社区中是否有人对当你不小心在远程分支的头部进行提交 --amend 时该怎么做有想法。现在我最终做了一个拉,对比我自己的部分更改,然后推送,导致 HEAD 上出现重复的提交消息。
为清楚起见,我问的是解决以下问题的最佳方法:
- 拉取远程分支(例如 master)
- 做出改变
- 提交——修改更改
- 尝试推,被拒绝
- 诅咒自己和/或神
git - 在 Gerrit 中将补丁集添加到其他人的提交
所以我试图将一些文件添加到其他人的提交中。
具体来说,我正在使用 Jenkins 运行一些测试,当它们完成后,我想将测试的结果文件修改为原始提交,这样如果提交被成功审查和合并,测试结果将被合并。
现在我有一个 build.sh 脚本,它将由 jenkins 执行(jenkins 会在每次推送到 gerrit 的提交时自动触发):
问题是这失败了。这是将文件修改为其他人提交的正确方法吗?
谢谢你的帮助