当我尝试使用git commit
进行提交时,sublime文本编辑器确实打开了,我编写了提交消息并保存并关闭了编辑器,但更改未提交。终端在git commit
处被绞死。
我在网上搜索并发现有同样问题的人并且在没有考虑任何问题的情况下应用了相同的修复程序。我跑了命令:
git config --global core.editor "mate -w"
现在我运行git commit
时出现了新错误:
mate -w:1:mate -w:mate:not found 错误:编辑器出现问题' mate -w'。 请使用-m或-F选项提供消息。
请帮忙。我是git并使用Ubuntu 14.04的新手。
答案 0 :(得分:6)
可能是你有一个执行长期任务的预提交钩子。
检查.git/hooks/pre-commit
并查看其功能。
答案 1 :(得分:2)
我使用sublime来提交我的提交消息,我发现问题是一个崇高的窗口正在打开但没有出现在前台(就像通常那样)。简单的解决方案,但因为它没有像往常一样工作,看起来像是悬挂。
答案 2 :(得分:0)
Git运行外部位的 lot 作为提交的一部分。虽然Git本身不太可能挂起,但它调用的任何外部部件都可以挂起,因此按执行顺序:
pre-commit
挂钩。这是$REPO_ROOT/.git/hooks/pre-commit
处的脚本(它不是{strong>不是 .sample
文件!它必须是一个唯一且仅命名为pre-commit
的文件。)检查内容脚本是否挂起。prepare-commit-msg
挂钩。它就位于pre-commit
钩子旁边,该钩子的名称与您期望的一样。一样。-m
,则编辑器将启动,以便您输入消息。确保
commit-msg
挂钩。与其他挂钩相同。-S
指定git commit
或您有commit.gpgsign = true
时,此步骤才运行。您可以使用git config commit.gpgsign
检查后者。这也取决于您的GPG代理。
git commit
时,它会重新开始;这可能会也可能不会帮助您上吊。post-commit
钩子。请注意,我仅 解决了手动创建提交的问题。 merge
也将创建提交,并且使用some different hooks基本上遵循相同的顺序。