我正处于承诺的中间.我在vim中输入了我的提交消息.我现在想起我需要改变一些东西.我意识到还有其他选择可以实现我想要的,但我想知道是否有一种方法可以中止提交但仍保存到目前为止我输入的提交消息.
nim*_*odm 170
如果你的编辑器可以退出错误代码 - Git将中止提交.使用VIM时,请键入
:cq
Run Code Online (Sandbox Code Playgroud)
以非零错误代码退出并中止提交.
Bor*_*lid 82
是.将提交消息写入另一个文件(:w /some/other/path.txt).然后退出编辑器而不保存(:q!).如果您之前将文件保存到其原始路径,请先删除所有内容并写入空文件(空提交消息将中止提交).
现在,当您准备提交"for reals"时,请使用您在备用路径中保存的消息文件.
或者,将提交消息复制到vim的一个缓冲区中.
值得注意的是,你根本不需要这样做:commit --amend让你在完成后改变提交,所以简单的解决方案就是用你所拥有的东西生成提交,然后在推送之前修复它.您甚至可以在破坏状态下完成提交,reset HEAD~(将您重置为提交前工作副本所处的状态),修复工作副本,然后commit -a -c HEAD@{1}使用旧的提交消息.
小智 66
如果您打开vim来编写提交消息,只需删除不以#开头的行,git将中止您的提交
Aborting commit due to empty commit message.
Run Code Online (Sandbox Code Playgroud)
虽然您可以中止提交,但另一种方法是在之后修改提交.只需提交当前的工作,然后进行所需的任何其他更改git add,然后运行git commit --amend.您将被放回到提交消息编辑器中,当您保存时,将修改提交以包括其他更改和新的提交消息.
小智 6
是的,这是可能的.为了提交,您的编辑器必须将提交消息写入文件.git/COMMIT_EDITMSG并以0状态代码退出.
因此,如果您正在使用VI/VIM,您可能需要执行以下操作...
:w(默认情况下会保存当前内容.git/COMMIT_EDITMSG):cqgit commit -eF .git/COMMIT_MESSAGE在-F /path/to/file将填充与/路径/到/文件中的任何给定的内容编辑器.但是,默认情况下,这将立即执行提交,除非您-e另外提供标记以进行编辑.
| 归档时间: |
|
| 查看次数: |
42247 次 |
| 最近记录: |