Git基础篇(二十三)——amend指令
Git基础篇(二十三)——amend指令
前言:
amend指令是常用指令,用于对最近一次提交记录进行修改,但指令的使用应该小心,本篇文章详细介绍amend的用法。
1 amend指令介绍
该指令用于对最近一次 commit
记录进行再次修改提交,不会生成新的提交记录,但会更新git的Commit ID。原提交记录可通过 git reflog
查看。
Git基础篇(二十三)——amend指令
前言:
amend指令是常用指令,用于对最近一次提交记录进行修改,但指令的使用应该小心,本篇文章详细介绍amend的用法。
1 amend指令介绍
该指令用于对最近一次 commit
记录进行再次修改提交,不会生成新的提交记录,但会更新git的Commit ID。原提交记录可通过 git reflog
查看。
什么情况下应该应该对最近一次提交记录进行修改?比如忘记添加或多添加了一些文件,对文件内容需要重新修改,或者是对提交的log进行修改,此时应该重新提交。
2 amend修改分支最新提交
2.1 修改文件、目录或log
若需要重新修改文件,则先在本地工作区直接修改,然后执行 git add --all
将修改添加到暂存区,若不需要修改文件则无需执行此步骤。
执行指令 git commit --amend
进行重新提交,输入指令后会跳转到log输入界面并显示最新log描述,若需修改log描述则直接进行修改,最后输入 :wq
退出。
此时已完成对最近一次提交记录的修改并重新提交,输入指令 git log
可看到分支最新的提交记录已被修改。
2.2 修改作者或邮件信息
使用指令 git commit --amend --author "Name <Email>"
对分支最新提交记录进行修改,修改其用户名和邮箱地址,注意这里的 ""
和 <>
不能省略。
3 amend修改push到远程服务器
amend指令用于对本地提交记录进行二次修改提交,修改记录还需要同步到远程服务器。可分为以下两种情况。
- 被修改的提交记录未push到远程分支;
- 被修改的提交记录已push到远程分支;
3.1 被修改的提交记录未push到远程分支
这种情况直接在本地完成对分支最新提交记录的修改,然后通过指令 git push
推送到远程服务器即可,不会产生冲突。
3.2 被修改的提交记录已push到远程分支;
由于本地分支最新的提交记录已经推送到远程服务器,若对本地分支最新提交记录进行amend修改再 push
则会报错,因为在本地纯在一个从A修改而来的B节点,而远程分支存在一个从A修改而来的C节点,把B推到远程服务器则出现冲突,提示更新被拒,因为当前分支的尖端滞后。
需要使用 git push --force
指令强制推送,使得本地的记录覆盖掉远程服务器的记录,但 --force
执行有风险。
什么情况下应该应该对最近一次提交记录进行修改?比如忘记添加或多添加了一些文件,对文件内容需要重新修改,或者是对提交的log进行修改,此时应该重新提交。
2 amend修改分支最新提交
2.1 修改文件、目录或log
若需要重新修改文件,则先在本地工作区直接修改,然后执行 git add --all
将修改添加到暂存区,若不需要修改文件则无需执行此步骤。
执行指令 git commit --amend
进行重新提交,输入指令后会跳转到log输入界面并显示最新log描述,若需修改log描述则直接进行修改,最后输入 :wq
退出。
此时已完成对最近一次提交记录的修改并重新提交,输入指令 git log
可看到分支最新的提交记录已被修改。
2.2 修改作者或邮件信息
使用指令 git commit --amend --author "Name <Email>"
对分支最新提交记录进行修改,修改其用户名和邮箱地址,注意这里的 ""
和 <>
不能省略。
3 amend修改push到远程服务器
amend指令用于对本地提交记录进行二次修改提交,修改记录还需要同步到远程服务器。可分为以下两种情况。
- 被修改的提交记录未push到远程分支;
- 被修改的提交记录已push到远程分支;
3.1 被修改的提交记录未push到远程分支
这种情况直接在本地完成对分支最新提交记录的修改,然后通过指令 git push
推送到远程服务器即可,不会产生冲突。
3.2 被修改的提交记录已push到远程分支;
由于本地分支最新的提交记录已经推送到远程服务器,若对本地分支最新提交记录进行amend修改再 push
则会报错,因为在本地纯在一个从A修改而来的B节点,而远程分支存在一个从A修改而来的C节点,把B推到远程服务器则出现冲突,提示更新被拒,因为当前分支的尖端滞后。
Git基础篇(二十三)——amend指令
前言:
amend指令是常用指令,用于对最近一次提交记录进行修改,但指令的使用应该小心,本篇文章详细介绍amend的用法。
1 amend指令介绍
该指令用于对最近一次 commit
记录进行再次修改提交,不会生成新的提交记录,但会更新git的Commit ID。原提交记录可通过 git reflog
查看。
什么情况下应该应该对最近一次提交记录进行修改?比如忘记添加或多添加了一些文件,对文件内容需要重新修改,或者是对提交的log进行修改,此时应该重新提交。
2 amend修改分支最新提交
2.1 修改文件、目录或log
若需要重新修改文件,则先在本地工作区直接修改,然后执行 git add --all
将修改添加到暂存区,若不需要修改文件则无需执行此步骤。
执行指令 git commit --amend
进行重新提交,输入指令后会跳转到log输入界面并显示最新log描述,若需修改log描述则直接进行修改,最后输入 :wq
退出。
此时已完成对最近一次提交记录的修改并重新提交,输入指令 git log
可看到分支最新的提交记录已被修改。
2.2 修改作者或邮件信息
使用指令 git commit --amend --author "Name <Email>"
对分支最新提交记录进行修改,修改其用户名和邮箱地址,注意这里的 ""
和 <>
不能省略。
3 amend修改push到远程服务器
amend指令用于对本地提交记录进行二次修改提交,修改记录还需要同步到远程服务器。可分为以下两种情况。
- 被修改的提交记录未push到远程分支;
- 被修改的提交记录已push到远程分支;
3.1 被修改的提交记录未push到远程分支
这种情况直接在本地完成对分支最新提交记录的修改,然后通过指令 git push
推送到远程服务器即可,不会产生冲突。
3.2 被修改的提交记录已push到远程分支;
由于本地分支最新的提交记录已经推送到远程服务器,若对本地分支最新提交记录进行amend修改再 push
则会报错,因为在本地纯在一个从A修改而来的B节点,而远程分支存在一个从A修改而来的C节点,把B推到远程服务器则出现冲突,提示更新被拒,因为当前分支的尖端滞后。
需要使用 git push --force
指令强制推送,使得本地的记录覆盖掉远程服务器的记录,但 --force
执行有风险。
需要使用 git push --force
指令强制推送,使得本地的记录覆盖掉远程服务器的记录,但 --force
执行有风险。