我刚做了一个提交并推动它掌握。有一个小错字,我想修复它作为此提交的一部分,而不是另一个。是否可以将此更改附加到当前和推送的提交?
答案 0 :(得分:4)
你可以
git commit --amend
git push -f
但你不应该。一旦推送到任何远程服务器,您就不应该更改历史记录。你应该用下一个提交修复拼写错误,或者让它自己提交,我更喜欢它。提交没有任何问题,包含单个更改,另一方面,提交通常只包含一个“主题”。你可以建立一个“很多拼写错误”-commit;)
答案 1 :(得分:4)
请注意,重写历史记录可能会导致很多问题。如果有其他开发人员/结账可能已经取消了你的错字提交,那么不要做你所要求的。问题是,如果我现在从你的主人那里拉出来 - 我有你的borked承诺。如果你重写历史记录,我会再次尝试 - 我的结账时间不再是主分支的时间线。绝对最低限度令人困惑。如果我修正了正常的方式(重新定位)并推送到掌握 - borked提交将被放回到主分支的历史记录中,并且在下一次拉动时 - 它也会回到历史记录中。
不要忘记......
要更新上次提交,请执行以下操作:
git checkout master
git pull
hack hack hack
git commit -va --amend
#................^
这将更新您上次提交的内容。
更新遥控器以使其与本地主分支匹配
git push
# READ THE WARNING
git push -f
这将强制更新远程的历史记录以包含更新的提交 - 并删除旧版本的“相同”提交。这就是事情,在这种情况下,你输了,git警告你。