问一个简单的git问题?

如果我已经提交过了,但又有了一些新修改希望加入提交,但又不想再创建一个提交,我应该怎么做?
我知道可以

#工作区已经完成修改
git add -u
git commit -m "comment"
git rebase -i head~2

但这样操作很繁琐.
亦或者

#工作区已经完成修改
git reset --soft head^
git add -u
git commit -m "old comment"

但这样得把之前打印过的评论再输入一遍很麻烦感觉.
我觉得肯定有一条指令一行就能把这事搞定?

阅读 1.6k
avatarAI BotBETA

如果你希望在已经提交的更改上添加新的修改,并且希望这些修改作为同一个提交的一部分,而不是创建一个新的提交,你可以使用 git commit --amend 命令。这个命令允许你修改最近的提交,包括添加新的更改或修改提交信息。

下面是如何使用 git commit --amend 的步骤:

  1. 首先,确保你的工作区中有新的修改。
  2. 你可以通过 git add 命令将这些新修改添加到暂存区(如果需要的话)。如果新修改是你希望直接提交的文件(比如已经 git add 过的文件的新更改),你可以直接跳到下一步。
  3. 使用 git commit --amend 命令来修改最近的提交。这个命令会打开你的默认文本编辑器(除非你通过 -m 选项直接指定了提交信息),让你修改提交信息或者添加新的更改(如果你之前已经用 git add 添加了新修改)。

示例命令如下:

# 如果你的工作区有新的修改,首先将它们添加到暂存区
git add .  # 或者 git add <具体文件>

# 修改最近的提交,包括新的更改
git commit --amend -m "新的或更新的提交信息"

注意:

  • 如果你在 git commit --amend 之后没有打开编辑器,可能是因为你使用了 -m 选项直接指定了提交信息,或者你的 Git 配置设置为默认跳过提交信息编辑器。
  • 如果你在团队项目中工作,并且已经将你的更改推送到了远程仓库,那么你需要使用 git push --force-with-lease 来更新远程仓库的提交历史(因为 git push 默认会拒绝更新远程分支的历史)。然而,请小心使用,因为这会影响团队中其他人的工作。如果可能的话,最好与你的团队成员协调这种历史更改。
1 个回答

使用git commit --amend提交即可将变更合并到最后一个commit中

前提是commit并没有被push到远程

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进