web-dev-qa-db-ja.com

Git Checkoutがgit bashで無期限にハングします。の解き方?

私は仕事用コンピューターでgit bashを使用して、開発ブランチのプロジェクトに取り組んでいます。変更をマージするつもりで、masterブランチにチェックアウトしようとしましたが、これを行おうとすると、CTRL + Cでkillするまでコマンドラインが無期限にハングします。

もう一度チェックアウトしようとすると、次のエラーが発生します。

別のgitプロセスがこのリポジトリで実行されているようです。 「git commit」によって開かれたエディタ。すべてのプロセスが終了していることを確認してから、再試行してください。それでも失敗する場合は、gitプロセスがこのリポジトリで先にクラッシュした可能性があります。続行するにはファイルを手動で削除してください。

ただし、index.lockファイルを削除した後、もう一度git checkoutを使用しようとすると、ターミナルでハングアップし、プロセスをもう一度強制終了するまで何も進行しません。等。!

誰かがこれに遭遇しましたか?そうであれば、この問題をどのように解決しましたか?

11
jamessct

私は最近同じ問題を抱えていて、ツリー内のSublime Textのアグレッシブインデックスロックファイルに関連しているようです-STを使用している場合は、ロックファイルを削除し、STを閉じてからgit checkout master再び。

3
spiralx

上記の答えに関連しています。 WindowsのEclipseとGit Shellでこの問題が発生しました。

この状況に陥るには、次の手順を実行した可能性があります。

  1. ブランチを作成します。
  2. Eclipse(またはSublime i expect)でファイルを変更し、開いたままにします。
  3. ファイルを追加してコミットし、ブランチをOriginにプッシュします。
  4. Gitステータスはコミットを意味しません。
  5. 元のブランチをチェックアウトしてみてください-ハングします。

この問題を解決するには:

  1. Ctrl-Cでロックファイルを削除します。
  2. Git statusがmodified: filenameになっていることに注意してください

  3. Eclipseに切り替えると、「ファイルがディスク上で変更されました-リロードするオプションが付いています。

  4. Eclipseでファイルを閉じます。
  5. git checkout -- filenameで変更を元に戻します

これで、ブランチをチェックアウトできるようになります。

1
intotecho

ファイルでTextpadを開いていましたが、そのロックが原因だと思います(Sublime Textの積極的なインデックスのロックファイルについてspiralxが言及したのと同じです)。 Textpadを閉じても、ブランチを切り替えることができませんでした。 VMを再起動したところ、問題はありませんでした。 :-)

0
Bosco