【问题标题】:Another git process seems to be running in this repository此存储库中似乎正在运行另一个 git 进程
【发布时间】:2016-10-26 12:39:23
【问题描述】:

我正在尝试学习如何使用 Git,并创建了一个包含 HTML、CSS 和 Javascript 文件的小项目。我从我基本上是空的项目中创建了一个分支,然后对我的代码进行了一些更改。我尝试暂存更改,但收到以下错误消息:

Another git process seems to be running in this repository, e.g.
an editor opened by 'git commit'. Please make sure all processes
are terminated then try again. If it still fails, a git process
may have crashed in this repository earlier:
remove the file manually to continue.

当然,我确实在尝试早些提交我的空项目并退出 git bash 时遇到了问题,因为我不知道如何摆脱我已经到达的地方。

我有什么办法可以解决这个问题,还是我应该开始一个新的存储库?

【问题讨论】:

  • 似乎肯定有另一个进程在运行 rn,可能在另一个终端选项卡中?
  • 打开任务管理器,看看还有什么在运行。如果您安装了 Process Explorer,您可能还可以使用它。
  • 尝试使用 git bash、命令行或 GUI 然后你可以解锁锁定的 git

标签: git


【解决方案1】:

尝试删除.git 目录中的index.lock 文件。

rm -f .git/index.lock

此类问题一般在同时执行两条git命令时出现;可能一个来自命令提示符,一个来自 IDE。

【讨论】:

  • 我收到以下错误:rm: cannot remove '.git/index.lock': Device or resource busy
  • rm -f .git/index.lock删除
  • 对于 CocoaPods,请尝试删除 Podfile.lock
  • 也为我工作,谢谢。我想知道为什么这个答案还没有被标记为已接受。命令序列: 1) find | grep '\.lock$' 2) rm -f ./.git/index.lock
  • 如果那里没有index.lock文件,请检查HEAD.lock·删除它解决了我的问题。
【解决方案2】:

好的,我最终通过运行'$ git rm .git/index.lock'让它工作......这很奇怪,因为我之前做了几次无济于事,但是嘿计算机对吗?

【讨论】:

  • 这里不用git rmrm就够了。 index.lock 不是要被 git 跟踪的文件。
【解决方案3】:

在应用程序的根目录中使用以下命令。这将删除 index.lock 文件并释放活动锁。

rm .git/index.lock

【讨论】:

  • 我还不得不关闭 Sublime-Text,因为它有一个 git 插件。另一个连接到 git 的 IDE 可能有同样的问题
  • 根据我的经验,删除 .lock 文件非常危险,我丢失了所有未提交的工作
【解决方案4】:

删除我的提交消息对我有用。

rm .git/COMMIT_EDITMSG

然后说。

致命:无法锁定 ref 'HEAD':无法创建 '.git/refs/heads/[your-branch-name].lock':文件存在。

请注意,您的分支名称可能与我的不同。您可以通过执行删除此锁定文件;

rm .git/refs/heads/[your-branch-name].lock

希望这对某人有所帮助。

【讨论】:

  • 当我尝试在后台使用 docker-compose up 提交时,这很有效。
【解决方案5】:

对我来说,问题更简单,这是在源代码树中,所以我不确定它会在多大程度上适用于常规解决方案,但我不小心选择了我的主分支来尝试提交而不是我未提交的更改。

这通常不是问题,但我已经预先输入了一条提交消息,这样我就可以跟踪我在那个小冲刺中做了什么。

基本上,我在未提交的分支上启动了一个提交,但不小心尝试在我的主分支上启动另一个提交。

【讨论】:

    【解决方案6】:

    它类似于上述方法,但就我而言,我有几种方法

    .git/refs/heads/<branch_name>.lock
    

    并且能够通过这种方式一次性删除所有内容

    find -name "*.lock" -exec xargs rm {} \;
    

    【讨论】:

      【解决方案7】:

      这发生在我身上,虽然 sourcetree 一直告诉我锁定文件存在,但那里没有这样的文件可供我删除。所以我只是检查了另一个分支,然后返回到原来的分支,发现这个更改解决了这个问题。

      【讨论】:

        【解决方案8】:

        如果您正在使用 CocoaPods 并且在某些时候搞砸了更新或安装(手动杀死它或其他什么),请尝试

        1) 删除index.lock 文件(在.git/index.lock 中)

        2) 删除您的 Podfile.lock 文件。

        3) 新建一个pod update

        4) 尝试发出失败的 git 命令(在我的情况下是 git add .

        【讨论】:

        • 它正在删除我丢失的 Podfile.lock。谢谢
        【解决方案9】:

        如果您遇到 另一个 git 进程似乎正在此存储库中运行,请使用以下命令,例如 由“git commit”打开的编辑器。请确保所有进程 被终止然后重试。如果仍然失败,一个 git 进程 可能早先在此存储库中崩溃了: 手动删除文件以继续。

        rm -f .git/index.lock

        git 重置 并在重置命令后使用 git status、git add 和 git commit -a 或 git commit -m "your message",git push origin master。

        【讨论】:

          【解决方案10】:

          您的 branch 可能已损坏创建新分支 git 分支#check 分支。我创建了一个新分支并开始工作。

          branch -b "main"
          git checkout -b "main"  #main is new branch
          git add .
          git commit -m "all files"
          git remote add origin #**YOUR REPO**  https://github.com/tarun-techmarbles/wp-dump-sql-git-push.git
          git push origin main  #push with new branch 
          

          【讨论】:

            【解决方案11】:

            虽然上面有一个替代方案,但这并没有解决我的问题。 就我而言,我删除了 ./zshrc 中的“git”插件并重新启动计算机,然后问题就消失了,我猜 zsh 插件做了一些与原始 git 命令冲突的事情。

            【讨论】:

              【解决方案12】:

              rm -f .git/index.lock 没有帮助,因为我有一个无法删除的锁定文件。因此,index.lock 也已被某些应用程序捕获

              在 Windows 中,我下载了 Unlocker 的替代品 Lock Hunter 并删除了这两个文件。 Git捕获了他们。

              【讨论】:

                【解决方案13】:

                pod update 时出现此错误。我通过删除cocoapods.git目录中的index.lock文件解决了这个问题。

                rm -f /Users/my_user_name/.cocoapods/repos/master/.git/index.lock
                

                它可能对某人有帮助。

                【讨论】:

                  【解决方案14】:

                  当我尝试在 SourceTree 中暂存文件时,我遇到了同样的问题。

                  要解决这个问题,请进入项目目录中的 .git 文件夹并手动删除 index.lock 即可。

                  【讨论】:

                  • 其实我在SourceTree中发现,通常等待几秒钟再试一次就足够了。
                  【解决方案15】:

                  在这里删除index.lock

                  <path to your repo>/.git/index.lock
                  

                  另外,如果您的存储库有子模块,请在此处删除所有 index.lock

                  <path to your repo>/.git/modules/<path to your submodule>/index.lock
                  

                  【讨论】:

                  • 子模块部分是我需要的
                  • 根据我的经验,删除 .lock 文件非常危险,我丢失了所有未提交的工作
                  【解决方案16】:

                  如果您是 windows 用户,则会出现错误'rm' is not recognized as an internal or external command。那是因为 rm 是一个 Linux 命令。所以在windows中,你可以使用下面的方法来删除.git文件夹中的index.lock文件

                  del -f .git/index.lock
                  

                  【讨论】:

                  • 在 Windows 中不适合我!无法识别参数“f”。
                  • 有时,如果您这样做,Windows 会给您一个“Invalid Switch” 错误。建议使用反斜杠 (\) 而不是正斜杠 (/) 以避免这种情况。即del .git\index.lock
                  • @WilliamDewayneCorrinIII 感谢您对“无效开关”场景的投入......它节省了我的时间。 :)
                  • 根据我的经验,删除 .lock 文件非常危险,我丢失了所有未提交的工作
                  【解决方案17】:

                  对我来说,解决方案就像关闭我的 IDE 然后签出一样简单。我的一个队友接受了我的 PR 并通过 TFS 合并了代码。删除 .lock 文件不起作用。

                  【讨论】:

                    【解决方案18】:

                    我遇到了同样的问题。我不得不做更多的事情来解决这个问题。首先我删除了index.lock,然后我从现有的 git 存储库位置克隆了新代码。我在单独的位置更改了代码。我复制了.git 文件夹和.gitignore 文件并粘贴到我进行代码更改的代码文件夹中。 然后我尝试提交和推送,它运行得很顺利。 如果您的问题没有通过上述给出的解决方案,这种信息可能会有所帮助。

                    【讨论】:

                      【解决方案19】:

                      使用 SourceTree 时遇到了同样的问题。但是我的主机上根本没有任何 index.lock 文件。找到packed-refs.lock文件,删除后问题解决。

                      【讨论】:

                        【解决方案20】:

                        我遇到了同样的问题,问题是我尝试使用大小为 1.3gb 的 xml 文件(用作数据集)推送我的代码,所以我将这些文件添加到 .gitignore 然后问题解决了

                        【讨论】:

                          【解决方案21】:

                          如果您根据问题的标题(“另一个 git 进程似乎正在此存储库中运行”)结束,请注意,如果此问题标题中的消息以另一条消息,如下所示:

                          fatal: cannot lock ref 'HEAD': Unable to create '/&lt;PATH&gt;/&lt;TO&gt;/&lt;REPO&gt;/.git/refs/heads/&lt;BRANCH&gt;.lock': File exists.

                          在这种情况下,您应该删除该文件(.lock)而不是 .git/index.lock

                          【讨论】:

                            【解决方案22】:

                            如果您使用的是 PowerShell,请使用

                            rm -Force .git/index.lock

                            【讨论】:

                            • 我也可以使用'-Force'标志来解决这个问题。系统在“-Force”和“-Filter”之间抛出了模棱两可的错误。
                            【解决方案23】:
                            • 我的 Mac 速度很慢,所以我运行了 2 个 git commits:一个已执行,第二个被第一个阻止。
                            • 我试过rm -f .git/index.lock
                              • rm .git/refs/heads/[your-branch-name].lock
                            • &lt;path to your repo&gt;/.git/index.lock
                            • &lt;path to your repo&gt;/.git/modules/&lt;path to your submodule&gt;/index.lock

                            @Ankush:

                            1. find | grep '\.lock$'
                            2. rm -f ./.git/index.lock 这对检查很有用 - 没有 .lock 文件潜伏

                            我做了@Chole 所做的事情——退出我的IDE 并再次查看git-status。然后跑了$git add . $git commit -m'msg' $git push

                            它清除了正在运行命令的 2 个终端并解决了问题。希望这对某人有所帮助 - 诊断很好,所以谢谢大家,非常有帮助。

                            一个缓慢的 Mac 之前已经导致了这个问题 - 所以现在我在运行与第一个冲突的第二个提交之前稍等片刻。

                            【讨论】:

                              【解决方案24】:

                              我们可以通过删除 .git/ 目录中名为 index.lock 的文件来修复此错误:

                              rm -f .git/index.lock
                              

                              这将清除 Git 索引上的缓存,以便您可以运行另一个 Git 命令。我们不需要使用 git rm 命令,因为 index.lock 不是我们跟踪的存储库的一部分。 index.lock 是一个隐藏的 Git 配置文件。让我们再次尝试提交我们的代码:

                              git add .
                              
                              git commit
                              

                              【讨论】:

                                【解决方案25】:

                                错误代码会给你文件的完整路径,复制那个路径并删除文件

                                例如

                                fatal: Unable to create '/Users/username/Development/project/.git/index.lock': File exists.
                                
                                Another git process seems to be running in this repository, e.g.
                                an editor opened by 'git commit'. Please make sure all processes
                                are terminated then try again. If it still fails, a git process
                                may have crashed in this repository earlier:
                                remove the file manually to continue.
                                
                                rm -rf fullPathOftheFile
                                
                                rm -rf /Users/username/Development/project/.git/index.lock
                                

                                【讨论】:

                                  【解决方案26】:

                                  它对我有用,我遇到了同样的错误。

                                  在 Windows 10 上删除 HEAD.lock 文件。现在我可以远程提交和推送我的更改。

                                  【讨论】:

                                    【解决方案27】:

                                    在我的情况下,只需运行命令:yarn add commitizen -D,然后一切正常!

                                    【讨论】:

                                      【解决方案28】:

                                      在 .git 文件夹中,删除 index.lock 文件并再次尝试提交或添加。它会工作的。

                                      【讨论】:

                                      • 重复,因为它已在许多现有答案中指定。
                                      猜你喜欢
                                      • 2021-06-15
                                      • 2022-11-06
                                      • 2022-11-12
                                      • 2019-07-15
                                      • 2016-07-14
                                      • 2021-07-28
                                      • 2017-01-26
                                      • 2013-08-26
                                      • 1970-01-01
                                      相关资源
                                      最近更新 更多