git commit 命令无限期挂起

2024-04-09

当我尝试使用进行提交时git commit,Sublime Text 编辑器确实打开了,我编写了提交消息并保存并关闭了编辑器,但更改并未提交。终端挂在git commit.

我在网上搜索,发现有人有同样的问题,并且不假思索地应用了相同的修复程序。我运行了命令:

git config --global core.editor "mate -w" 

现在我运行时遇到了新错误git commit:

伴侣-w:1:伴侣-w:伴侣:未找到 错误:编辑器“mate -w”有问题。 请使用 -m 或 -F 选项提供消息。

请帮忙。我对 git 和 Ubuntu 14.04 非常陌生。


Git 运行一个lot外部位作为提交的一部分。虽然 Git 本身不太可能挂起,但它调用的任何外部部分都可能挂起,因此按照执行顺序:

  1. The pre-commit钩。这是一个脚本,位于$REPO_ROOT/.git/hooks/pre-commit (it is not the .sample文件!它必须有一个名字,准确且唯一,pre-commit.) 检查脚本的内容以查看它是否可能挂起。
  2. The prepare-commit-msg钩。它就在旁边pre-commit钩子,名称如您所料。一样。
  3. If you didn't pass -m, then your editor starts so you can input the message. Make sure that
    • 该窗口没有以某种方式隐藏(屏幕外、最小化、在其他窗口后面)
    • 编辑器本身并没有挂起
  4. The commit-msg钩。与其他挂钩相同。
  5. Commit signing. This step only runs if you specify -S with git commit, or if you have commit.gpgsign = true. You can check the latter with git config commit.gpgsign. This also depends on your GPG agent. Check:
    • 如果您的代理使用 GUI 来获取您的密码,则该窗口不会像编辑器一样隐藏。
    • 代理本身并没有挂起。我的问题有几个,curses https://en.wikipedia.org/wiki/Curses_(programming_library)基一、悬。
    • 你随时可以杀死你的 GPG 特工。它所做的只是简单地保存您的密码,因此您无需每次都输入它。当你git commit再次,一切都会重新开始;这可能对你的绞刑有帮助,也可能没有帮助。
  6. The post-commit hook.

请注意,我已经only解决了手动创建提交的问题。merge也会创建提交,并且它遵循大致相同的顺序,一些不同的钩子 https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks.

此外,如果您的存储库特别大,Git 本身可能需要一段时间——每次提交本质上都是给定时间其中所有文件的快照。如果你明智地使用.gitignores https://git-scm.com/docs/gitignore忽略诸如构建的可执行文件之类的事情just跟踪 Git 存储库中的源代码,它会很有帮助。请注意,这会破坏某些编辑器:Visual Studio(原始版本,而不是 VS Code)在此类问题上尤其存在一些问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

git commit 命令无限期挂起 的相关文章

  • 我可以获取两次提交之间 git 子文件夹中已更改文件的列表吗?

    我有一个包含许多文件夹的 git 存储库 我需要找出在两次提交之间这些文件夹之一中的哪些文件发生了更改 有没有一个好的方法来做到这一点 我想你可以坚持走最后的路git diff git diff HEAD HEAD special fold
  • 如何将更改提交到另一个预先存在的分支

    我刚刚对一个分支进行了更改 如何将更改提交到另一个分支 我正在尝试使用 git checkout the commmit to the changed branch b the other branch 但是 我认为这不是正确的做法 因为在
  • 使用 SourceTree 克隆存储库

    有人可以给我一个简单的使用 SourceTree 克隆存储库的快速演练吗 在书签中 我单击克隆存储库 对于源路径 我粘贴如下所示的 URL 电子邮件受保护 cdn cgi l email protection 客户端 应用程序名称 ios
  • 在 git 中管理 schema.rb 的首选方法是什么?

    我不想添加schema rb to gitignore 因为我希望能够从该文件加载新的数据库架构 然而 保持检查状态会导致各种虚假冲突 而这些冲突很容易通过新的解决方案解决 db migrate reset 基本上我想要一种方法 将 sch
  • Git 与人工制品

    刚刚完成 NPM 和 Bower 的 Artifactory 设置 它非常容易使用 您只需更改存储库 URL 一切就正常了 查看有关如何让 Artifactory 与 github vcs 一起使用的文档 它看起来过于复杂 我想知道是否有人
  • 如何防止克隆我的 github 存储库?

    我正在尝试找到一种方法来防止从 github 存储库克隆 例如 我有一个私有存储库 有些人在该存储库中工作 在公司计算机中 团队中的每个人都设置了授权级别 当我在 github 上为某个用户设置授权时 该存储库可在他 她自己的 github
  • 如何从父克隆中过去的提交中获取 git 子模块的关联提交 ID?

    有没有一种方法 除了实际检查父提交之外 还可以根据父克隆中的提交 ID 确定子模块的 SHA 1 提交 ID 我知道我能找到现在与 SHA 1 关联git submodule 这是一个例子 我有一个带有单个子模块的克隆foo上个月情况发生了
  • 如何摆脱 gerrit 中的错误依赖关系

    看起来 当使用 gerrit 时 默认情况下所有更改都依赖于前一个更改 我不会分支进行新的更改 我只是在主分支上工作 然后将提交的更改推送到远程源 主分支 即使两次提交彼此无关 每次都会创建依赖关系 我遇到了一些问题 这让我认为我没有正确地
  • 将两个单独的功能分支合并到同一个主分支中[重复]

    这个问题已经存在了 我们正在努力发布 2 个远程功能分支 F2 和 F3 我们如何处理F3来创建发布 提案1 简单地合并F3进入开发 提案2 第一次合并开发进入F3 包括F2的变化 然后合并进入发展 这两种方法之间有什么实际差异 是否有客观
  • 为什么我的存储库的 github 页面中没有出现问题选项卡?

    我想在 github 存储库中创建问题来纠正存储库中的技术债务 我看不到问题选项卡 对于其他存储库 问题选项卡显示在拉取请求选项卡下方 如何为我的存储库启用问题选项卡 您必须先启用问题 您可以通过点击来做到这一点Settings并启用 问题
  • 如何 git checkout 提交并将子模块更新到该提交?

    我正在克隆一个带有子模块的项目并恢复到大约一年前的提交 git clone recursive branch 5 6 https codereview qt project org pyside pyside setup cd pyside
  • 设置单独的遥控器以仅推送和拉动子文件夹

    假设我有两个存储库 repo A and repo B 其中包含一个文件夹 其中的代码与存储库 A 中的代码类似 这实际上如何发生并不重要 但是好吧 让我们假设我刚刚从 A 复制了内容 现在我想要以下内容 就像我在 repo A 中习惯的那
  • Git 从 Netbeans 推送到 Gerrit

    我在将提交从 Netbeans 7 4 在 Linux 上 推送到 Gerrit 进行审查时遇到问题 我的git配置 core repositoryformatversion 0 filemode true logallrefupdates
  • Git 和重定向

    我注意到 当 git html 项目页面如下所示 https github com fruux sabre dav 被克隆 以这种方式 git clone https github com fruux sabre dav 实际生成的远程 U
  • 为什么 cmake 在 git commit 后编译所有内容

    假设我有时在 Linux 上使用 cmake 2 8 编译一段代码 我更改了一个文件 my changed file 运行 cmake 并且只构建了这个文件 到目前为止 一切都很好 现在我想提交这个 git add my changed f
  • 如何从 git 存储库中删除作者?

    如果我创建一个 Git 存储库并公开发布它 例如在 GitHub 等上 并且我收到存储库贡献者的请求 无论出于何种原因删除或隐藏他们的名字 有没有一种方法可以轻松做到这一点 基本上 我有这样的请求 可能想将他们的姓名和电子邮件地址替换为 匿
  • 以编程方式将工作项关联到拉取请求

    我可以得到 https www visualstudio com en us docs integrate api git pull requests get a pull request https www visualstudio co
  • 如何更新我的裸存储库?

    我创建了一个裸存储库来发布我的存储库 但我不知道如何使用主存储库的当前状态更新裸存储库 如果您想复制主存储库中的所有对象 请在主存储库中执行此操作 git push all
  • 从“git diff”中排除文件

    我正在尝试排除一个文件 db irrelevant php 来自 Git diff 我尝试将文件放入db子目录名为 gitattributes与线irrelevant php diff我还尝试创建一个名为 git info attribut
  • 配置 Eclipse/EGit 来跟踪上游存储库

    我正在使用 EGit 如新的 Eclipse 4 2 Juno 版本中提供的 我在 GitHub 上有一个存储库 是从另一个上游存储库分叉的 当我从 Github 上的存储库在 Eclipse 中创建项目时 它正确设置origin指向 Gi

随机推荐