当我尝试使用提交时git commit,sublime文本编辑器确实打开了,我写了提交消息并保存并关闭了编辑器,但更改没有被提交.终端被绞死了git commit.
我在网上搜索,发现有同样问题的人并且在没有考虑任何问题的情况下应用了相同的修复.我跑了命令:
git config --global core.editor "mate -w"
Run Code Online (Sandbox Code Playgroud)
现在我跑的时候出现了一个新的错误git commit:
mate -w:1:mate -w:mate:not found error:编辑器'mate -w'出现问题.请使用-m或-F选项提供消息.
请帮忙.我是git并使用Ubuntu 14.04的新手.
tbr*_*den 13
对我来说,这是一个突然退出的 gpg 签名会话,我不得不用以下命令终止 gpg 会话
gpgconf --kill gpg-agent
Run Code Online (Sandbox Code Playgroud)
可能是您有一个执行长时间运行任务的预提交钩子。
检查.git/hooks/pre-commit并查看其作用。
作为提交的一部分,Git 运行了许多外部位。虽然 Git 本身不太可能挂起,但它调用的任何外部部件都可能挂起,因此按执行顺序:
pre-commit挂钩。这是一个脚本$REPO_ROOT/.git/hooks/pre-commit(这是不是在.sample文件!它必须被一只叫,准确,只是,pre-commit。)检查脚本的内容,看它是否可能会挂起。prepare-commit-msg挂钩。它就在pre-commit钩子旁边,正如您所期望的那样命名。一样。-m,则您的编辑器将启动,以便您可以输入消息。确保
commit-msg挂钩。和其他钩子一样。-Swith 时运行git commit,或者如果您有commit.gpgsign = true. 您可以使用git config commit.gpgsign. 这也取决于您的 GPG 代理。查看:
git commit再次,它会重新开始;这可能会或可能不会帮助您上吊。post-commit挂钩。请注意,我只解决了手动创建提交的问题。merge还将创建提交,它遵循大致相同的顺序,但有一些不同的钩子。
此外,如果您的存储库特别大,Git 本身可能需要一段时间——每次提交本质上都是在给定时间其中所有文件的快照。如果你明智地使用.gitignores来忽略诸如构建的可执行文件之类的事情,而只是跟踪 Git 存储库中的源代码,它会很有帮助。请注意,这会破坏一些编辑器:尤其是 Visual Studio,其设计很差,因此与 Git 不兼容。