当前位置: 首页 > 知识库问答 >
问题:

问一个简单的git问题?

贺善
2024-07-29

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

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

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

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

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

共有2个答案

姚俊贤
2024-07-29

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

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

乐刚毅
2024-07-29

如果你希望在已经提交的更改上添加新的修改,并且希望这些修改作为同一个提交的一部分,而不是创建一个新的提交,你可以使用 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 默认会拒绝更新远程分支的历史)。然而,请小心使用,因为这会影响团队中其他人的工作。如果可能的话,最好与你的团队成员协调这种历史更改。
 类似资料:
  • 在这里,同一个时钟周期内,a被赋值的语句和c被赋值的语句的执行的先后顺序未必确定对不对? 我希望无论如何都是c<=a先执行,这样的话应该怎么写代码呢?我知道写在一个begin块里用=就行但我想知道不同always块内的情况,,, 刚开始搞这玩意不太明白,恳请赐教.

  • 对于一个练习,我尝试创建一个登录页面。这是我第一次使用php。我已经看过很多指南,也看过stackoverflow的很多问题。这就是我想到的。(我正在对数据库使用XAMPP) 文件夹php:login。php,会话。欢迎。php,连接。php 文件夹页面:登录。html DB名称:leftoveryouth 表名:客户端 Colums:id、名、姓、出生日期、街道、街道、城市、plz、用户名、电子

  • 问题内容: 我们有几个在Linux上运行的Python 2.6应用程序。其中一些是Pylons Web应用程序,其他一些只是长时间运行的进程,我们使用从命令行运行。我们还在开发和生产中使用。 将这些应用程序部署到生产服务器的最佳方法是什么? 在开发中,我们只需将源树放入任何目录,设置一个virtualenv并运行- 足够容易。我们可以在生产中进行相同的操作,也许这确实是最实用的解决方案,但是在生产

  • 点 恢复 按钮的时候,后面的变量abc怎么没有显示234?还是显示的123;

  • 如果有人有使用Simple SAML(PHP)的经验https://github.com/onelogin/php-saml我将非常感谢您的帮助。 首先,我已经让它工作了。我的应用程序是服务提供商,它确实允许外部身份提供商进行身份验证。万岁! 然而,作为该过程的一部分,我提出了两个问题: 1) 我的SP生成元数据URL。如果客户机已经提供了其IDP的详细信息,那么该代码可以正常工作。我可以看到ph

  • 文件夹目录是 这是cmakelists.txt 这是main.cpp 当我在中键入时,它显示一个错误 就像我听到的CMake-build。与make相似,所以我尝试了make,它显示了如下错误 当我键入时, 你能帮我修好它吗?我不能做任何事情,因为我甚至不能解决这个简单的错误在非常容易的教程。请帮帮我请谢谢 ps.因为我都不知道什么是CMake中的错误,你能告诉我应该在google中键入什么来解决

  • 当我运行新版本2.13.0.windows时。它的新命令<code>stash-p--{pathspec} 它报告错误 错误:pathspec 'AB。“dir 1/dir 2/destinationhierarchycreator . cs”与git已知的任何文件都不匹配。 然而,当我做一个,我从实际复制文件时,它会报告 如果我转到文件所在的目录并执行< code > git stash-p-d