2013-08-21 119 views
0

以下是我所做的:如何编辑我之前在Git中的提交?

  1. 通过编辑文件修复错误。
  2. git commit -a -m "comment ... "git push
  3. 后,我推这个承诺,我发现我已经错过了一些东西,所以我需要重新编辑该文件,并再次推。
  4. 问题是,我不想创建一个新的提交,是--amend不错的选择?
+1

IIRC,修改作品只是如果你还没有推尚未 –

+0

Ammend也适用,如果你已经推它..你可以强制推它..但我不会建议..取决于内部工作流程.. – Mattherick

+0

可能重复[如何在Git中编辑不正确的提交信息?](http://stackoverflow.com/问题/ 179123 /我如何编辑一个不正确的提交消息在git) – 2013-08-21 04:36:36

回答

1

您可以使用一个交互式的rebase和壁球最后2提交信息如下

//commit with your new changes 
git commit 

git rebase -i HEAD~2 

//This launches an interactive rebase where you can squash your last 2 commits into a single commit. 

现在,你的Git将运行到去年2名提交,你能够压制他们(像改写其他选项等等)。

注意:如果您已将提交推送到服务器,则不要重新绑定。

+0

你的意思是我不应该尝试修改推后的新变化? – MrROY

+0

如果您推送了提交,请勿重新绑定或更改现有提交。这会导致混乱。有一个新的提交更好。只要你没有推送改变提交消息是好的。 – palerdot

+0

@palerdot这是不正确的。 'git commit --amend'也可以改变文件内容。编辑东西,'git add'受影响的文件(或'git rm',如果你想删除东西),然后'git commit --amend'。 rebase是不必要的复杂。 – hobbs

-1

是的,你可以git add编辑的文件,git commit --amend,然后再推 - 只要你不介意编辑公共历史,这可能会给一些人带来不便。服务器可能会拒绝非快速推送,但您可以用git push --force覆盖它,或者如果服务器配置得非常严格,可以从服务器中删除分支,然后按下。

如果改写历史的是不是一个合理的选择,只是做一个新的承诺,并说“哎呀” :)

+0

现在我认为“哎呀”提交对我来说比较容易......谢谢。 – MrROY

相关问题