2012-07-22 86 views
29

我愚蠢地向GitHub推送了一个非常糟糕的提交名称。我该如何改变这一点?你如何重命名推送到GitHub的Git提交?

git commit --amend还在为已推送提交工作吗?

+0

使用'git commit --amend'后面跟着'git push --force'。 – vanza 2012-07-22 19:52:11

+0

我不会推荐'git push --force'。你想要明确,只是强迫你需要强迫你。例如:'git push --force origin specific-branch'。你也可以使用'-f'的简写形式。短表格也可以作为一个选项连接在一起。例如。 'git push -uf origin mybranch' – 2012-07-22 21:24:10

回答

50
git commit --amend 

这将使你的编辑器,或

git commit --amend -m "Your new message here" 

,这将允许你指定命令行上的新信息。也有可能,但如果你有别的提交到改写

git rebase -i HEAD^ 
# then replace 'pick' with 'r' or 'reword' and save, editor should pop up again to edit the msg 

因为这犯了一个新的SHA1由于内容的变化更加有用,您将需要力推新的参考。这个强制是需要的,因为它告诉git忘记以前的提交。这是一项安全措施。

git push origin your-branch-name -f 
+3

需要记住的一点是,如果您正在处理一个大型项目,其中某个人可能已经检出了您要替换的提交,那么他们的工作就会变得非常难以合并英寸 – 2012-07-22 20:13:07

+1

如果你正在重命名的东西,这是非常微不足道的。他们所需要做的就是'git fetch'和'git rebase origin/master',假设它们在master上工作。没有冲突,因为没有快照被改变。 – 2012-07-22 21:21:49