2017-02-13 48 views
4

我一直在使用工作计算机上的git bash开发分支中的项目。我刚试图结账到主分支,因为我打算合并这些更改,但是当我尝试执行此操作时,命令行无限期地挂起,直到我用CTRL + C将其终止。Git Checkout无限期地挂着git bash。怎么解决?

如果我尝试再次结帐,我得到以下错误:

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.

但是,删除index.lock文件,试图再次简单地挂在终端和从未使用git结帐后,使任何进展,直到我再次杀掉该进程!等等。!

有没有人遇到过这个问题,如果是的话,你是怎么解决这个问题的?

+0

你可以试着用'GIT_TRACE = 1'在你的命令前面,并报告卡在哪里? –

+0

我得到的输出是'15:11:16.365303 git.c:371 trace:built-in:git'checkout''master'' – jamessct

+0

如果你运行'git worktree add'并将另一个文件夹作为结帐目的地?也许Git正在等待其他进程去除文件上的锁定。 –

回答

2

我最近一直有同样的问题,它似乎与Sublime Text的积极索引锁定文件在我的树 - 如果您使用ST然后尝试删除锁定文件,关闭ST,然后运行git checkout master再次。

+0

我确实设法最终解决了这个问题,虽然说得很诚实,我并不完全确定我做了什么!我使用的是Visual Studio Code,而不是Sublime,但它可能只是一个关闭文本编辑器的情况,在删除解决它的锁定文件之间 - 老实说,不能肯定地说这是前一阵子! – jamessct

+3

我刚刚搜索了这个,因为我遇到了同样的问题。当我意识到除了git bash shell(我在Windows上)之后,我修复了一个命令shell,并且它位于repo目录中。关闭命令行解决了问题。 –

1

相关上面的答案。我在Windows上使用Eclipse和Git Shell时遇到了这个问题。

你可能已经按照这些步骤进入这个情况:

  1. 建立一个新分支。
  2. 在Eclipse中修改文件(或者我期望的Sublime)并保持打开状态。
  3. 添加文件并提交,然后将分支推送到原点。
  4. Git状态说没有提交。
  5. 尝试结帐原始分支 - 它挂起。

要解决的问题:

  • 所以按Ctrl-C并删除锁定文件。
  • 需要注意的是git的状态现在说modified: filename

  • 切换到Eclipse和它说“文件已在磁盘上更改 - 与选项重新加载。

  • 在Eclipse中关闭文件。
  • 撤消与git checkout -- filename
  • 的变化现在应该可以签出分支。

    相关问题