mirror of
https://github.com/LucasVbr/first-contributions.git
synced 2026-05-14 01:31:50 +00:00
3.0 KiB
3.0 KiB
修改 Commit
假设你已经将一个更改提交到远程仓库,但后来你发现提交信息有一个拼写错误,或者你忘记在最近的提交中添加一行。
你该如何编辑这个提交?这篇教程将为你解答。
在推送到 Github 后修改最近的提交信息
如果你不想打开文件,可以通过以下方式进行修改:
- 输入
git commit --amend -m "然后是你新的提交信息" - 运行
git push origin <branch-name>将更改提交到仓库。
注意:如果只输入 git commit --amend,则会打开文本编辑器,提示你编辑提交信息。
添加 -m 标志可以防止这种情况。
修改单个提交
那么,如果我们忘记对文件做一个小的更改,比如更改一个单词,而且我们已经将提交推送到远程仓库了,怎么办呢?
以下是我的提交日志:
g56123f 创建 bot 文件
a2235d 更新 contributor.md
a5da0d 修改 bot 文件
假设我忘记在 bot 文件中添加一个单词。
有两种方法可以解决这个问题。第一种方法是创建一个包含更改的新提交,如下所示:
g56123f 创建 bot 文件
a2235d 更新 contributor.md
a5da0d 修改 bot 文件
b0ca8f 添加 bot 文件中的单词
第二种方法是修改 a5da0d 提交,添加这个新单词,并将其作为一个提交推送到 Github。
第二种方法更好,因为这只是一个小改动。
为了实现这一点,我们可以按照以下步骤操作:
- 修改文件。在本例中,我会修改 bot 文件,加入之前遗漏的单词。
- 接下来,使用
git add <filename>将文件添加到暂存区。
通常,在将文件添加到暂存区之后,我们会运行 git commit -m "我们的提交信息"`, 对吧?
但由于我们希望修改的是上一个提交,我们应该运行:
git commit --amend
这会打开文本编辑器,提示你编辑提交信息。你可以选择保留原来的信息,也可以修改它。- 退出编辑器
- 使用
git push origin <branch-name>推送更改
这样,两个更改就会合并为一个提交。
修改远程提交
如果你想修改的提交已经推送到远程,修改该提交将导致你的本地历史与远程分支不同步(因为你实际上创建了一个新提交并替换了已修改的提交)。
由于你希望更改远程的提交,你需要覆盖远程仓库中的历史记录。为了实现这一点,请按照上述相同的步骤操作,但在推送提交到远程时使用强制推送。
警告
强制推送到远程将覆盖(并丢弃)远程上的更改,只保留你推送的提交。其他团队成员在此期间对远程的更改也将被覆盖。
这是如何修改远程仓库中最后一次提交的方法:
git add <your changed files>
git commit --amend -m "然后是你的新提交信息"
git push --force
使用
--force-with-lease比--force更安全,它可以避免覆盖远程分支上其他人的更改(如果你不打算这么做)。