- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我使用 git commit --amend 来修改之前的提交。之后,当我推送我的更改时,我因为“not-fast-forward”错误而被拒绝。我在寻找答案。不幸的是,git pull --rebase
、git fetech origin
等命令不起作用。如果我的本地仓库没有冲突,为什么我的推送失败。
最佳答案
如果您发布了一个提交,而其他人获取了它,则该提交将保留在那里。当您修改或 rebase 时,您创建了一个新的提交并忘记了旧的。但是当其他人已经有旧的提交时,它不会为他们更新。因此,当它们稍后 merge 时,提交的两个版本将 merge 造成严重破坏。
由于这个错误,git 会阻止你推送你已经错误发布的提交的修改版本。
规则也有异常(exception)。如果你正在推送一个没有人处理的备份,你可以在那里推送新的历史记录(这称为倒带)。如果有一个分支被宣布要倒带(例如 git 自己的“pu”分支和所有尚未在“下一个”中的主题),倒带显然没问题。
如果你确定你不会因此而引起问题,你可以告诉 git 继续并通过使用倒带
git push -f
它也是配置为镜像的 Remote 的默认设置。
请注意,某些存储库可以配置 hook 以禁止倒带或无论如何禁止倒带某些分支。
关于git-amend - git commit --amend 后出现 Git not-fast-forward 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21316534/
我使用 git commit --amend 来修改之前的提交。之后,当我推送我的更改时,我因为“not-fast-forward”错误而被拒绝。我在寻找答案。不幸的是,git pull --reba
似乎这两个命令将做完全相同的事情,即在不调用编辑器的情况下向最后一次提交添加一些阶段性更改。 我只是想知道是否有任何我不知道的技术差异。 谢谢。 最佳答案 在功能上,是的,它们是相同的:-C 将“ed
如果我这样做 git commit --amend到标记的提交,标记将消失。我需要删除原始标签并重新添加。有没有办法将原始标签移动到新的提交? 最佳答案 不能直接绑the creation of a
今天我发现了 --no-edit 用于 --amend。但是,它导致我遇到以下问题。这里的步骤: git 克隆 对代码做了一些修改 git 添加。 git commit --amend --no-ed
我的 ~/.gitconfig 中有这个别名: [alias] am = commit -a --amend -C HEAD 但是,当我运行 git am 时,它挂起,并且我在提示符处得到 (
我的 ~/.gitconfig 中有这个别名: [alias] am = commit -a --amend -C HEAD 但是,当我运行 git am 时,它挂起,并且我在提示符处得到 (
我愿意更正我对此的理解,但我不确定为什么会这样。 当使用 git 时,我知道如果我对文件进行更改然后提交它,我会得到一个新的哈希值,因为文件已更改。 我对 git commit --amend 的理解
场景:我提交,推送到远程服务器,然后使用 --amend 提交其他内容。如果我再次尝试推送,我会得到一个错误,因为我更改了已经推送的历史记录。 假设我不关心修改后的更改,我该如何撤消它以使我的历史看起
有时我真的想 git commit --amend 时不小心输入了 git commit -amend。 Git 检测到并询问我 $ git commit -amend error: did you
这个问题在这里已经有了答案: How to amend a commit without changing commit message (reusing the previous one)? (7
有时你提交过代码之后,发现一个地方改错了,你下次提交时不想保留上一次的记录;或者你上一次的commit message的描述有误,这时候你可以使用接下来的这个命令:git commit --amen
我不小心做了一个“hg commit --amend”而不是一个提交。如何在修改之前回滚提交? 最佳答案 注意:此答案现已弃用。见 the answer来自@Sorina Sandu。 见 hg he
我当前的 Git 存储库有三个分支:mainline、feature_a 和 feature_b。历史如下: mainline 从远程仓库克隆 feature_a 分支已从 mainline chec
我有一个远程“开发”分支并在本地处理它。 我使用提交消息“my_feature”在“dev”上进行了第一次提交,将我的本地分支领先于远程 1 次提交。 然后我开发了一些新东西并制作了一个 git ad
这个问题在这里已经有了答案: How to undo "git commit --amend" done instead of "git commit" (12 个答案) 关闭 6 年前。 我不小心
git 书似乎与 git commit --amend 自相矛盾: This command takes your staging area and uses it for the commit. I
我经常犯这样的错误,即在提交后立即更改文件,然后运行 git commit --amend 然后快速执行 git push -f origin master 显然,问题是我从未运行过 git ad
当我执行 commit --amend 时,如果提交已经被推送到远程存储库,那么它是不安全的提交。 我想检测不安全的提交——通过预提交钩子(Hook)修改并中止。 但是预提交钩子(Hook)没有参数。
我有一个用 ruby 做事的提交后钩子(Hook)。它工作得很好,但在某些情况下,我想在执行 git rebase 或 git commit --amend 时跳过代码执行。 有人知道我在这些情况
我看过 'git commit --amend' in detached HEAD state 。这个问题要求答案比需要的更复杂。 我想了解 git commit --amend 在正常的 HEAD
我是一名优秀的程序员,十分优秀!