【问题标题】:does git amend require a git push -f?git amend 需要 git push -f 吗?
【发布时间】:2012-09-21 18:39:47
【问题描述】:
make changes
git commit 'made changes' -a
git push origin
make more changes
git ammend -a
git push origin

我注意到,当我执行 git commit --ammend -a 然后尝试推送到远程仓库时,它需要我强制推送 (git push -f)。

我的猜测是因为它试图推送相同的(?这个词是什么?)提交代码,但注意到文件中的差异。

这是正确/正常的吗?

【问题讨论】:

  • 没有git amend命令;你指的是git commit --amend吗?
  • @MarcoLeogrande 感谢我对我的别名太习惯了>_<
  • 有点跑题了,但我认为在你推送了一个提交之后,对那个提交进行修改是个坏主意。你的承诺就在那里。接受。创建一个新的提交,其中包含您忘记放入原始文件的更改。然后推那个。
  • @user1657364 好点!

标签: git


【解决方案1】:

git commit --amendgit commit --author=<author>,如果有任何修改,将生成不同的 SHA1。
那么,是的,需要git push -f

git amend 可以定义为类似 blog post 中的别名:

git config --global alias.amend 'commit --amend -C HEAD'

此别名添加了一个git amend 命令,该命令将在修改当前提交消息时重用它。

【讨论】:

  • 更多信息请参见:stackoverflow.com/a/10728453/6309。请注意git push -f 的危险;)stackoverflow.com/questions/253055/…
  • 感谢@VonC,正如我所怀疑的那样。那么有什么方法可以规避这个问题或者知道忽略它是否安全? (我可以考虑将遥控器拉到本地和git diff ?)
  • @iight 忽略push -f?如果您想推回 amended 提交(即,相同的内容,由于修改的元数据信息而具有不同的 SHA1),您将无法做到。
猜你喜欢
  • 2013-01-06
  • 2011-04-14
  • 1970-01-01
  • 1970-01-01
  • 2019-08-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多