私はこれについて他のスレッドの多くを見てきましたが、彼らは助けにはなりません。
非常に単純なレポジトリ-2つのJavaScriptファイルがあります。 Macbookに100 GB以上あります。ファイルをサブディレクトリに移動して、ローカルでステージングしようとすると、取得した変更が...
致命的:新しいインデックスファイルを書き込めません
これは、端末ですべてのアクションを実行する場合でも、SourceTreeのようなGUIを使用する場合でも発生します。さらに、ファイルの1つがロックされ、ログオフして再度ログインするまで作業ディレクトリを削除できません。
なぜこうなった?ロックはステージングを妨げていますか?その場合、OS Xで問題ファイルのロックを解除する方法は何ですか?まだリモートにプッシュしていませんが、それが違いを生む場合、リモートリポジトリはGoogle Codeです。すべてがローカルです。
私の場合、ディスクの空き容量がなくなったため、空き容量を確保するためにハードドライブからファイルを削除する必要がありました。
私はこの数日間、同じ問題を抱えています。基本的に、私の知らないうちにリポジトリ全体が新しいファイルシステムに移動され、git statusを実行しようとすると、リポジトリ内のすべてのファイルが更新されたことが突然報告されました。
だから、多くのグーグル精練の後、私は次のことを試しました:
問題を解決できたのは、インデックスファイルをコピーし、元のファイルを削除して、コピーの名前を変更することだけでした。
私はそれが本当に「解決策」ではないことを知っていますが、今ではすべてのファイル/ブランチがそのままで、魔法のように動作します> <。誰かがこれがうまくいく理由を知っているなら、教えてください。
Macでも同じ問題が発生しました。ファイルシステムACLが原因のようです。 chmod -RN /path/to/repo
を試して、ACLをクリアします。これを行った後、変更をコミットすることができました。トリックファイルを使用してインデックスファイルをコピーし、元のファイルを削除してコピーを戻すと、同じ結果が得られました。
GoogleドライブやDropboxなどのオンライン同期サービスでGitHubをセットアップしている場合、GitHubが同じことをしようとしているため同期サービスがファイルの読み取り/書き込みを試みるため、同期を無効にしてみてください。正しく。
私の場合、Dropboxの同期を一時停止すると問題が解決しました
ファイル.git/indexが別のプロセス(私のローカル開発Webサーバー)によって使用されていることが偶然に起こりました。私はプロセスをシャットダウンし、それが機能しました。
これは私のために働いた:
rm -f ./.git/index.lock
.gitフォルダー内のすべてのファイルにACL(何らかの方法で)を添付しました。
.gitフォルダーのls -le
で確認してください。
chmod -N
(フォルダー/ファイルの場合)またはchmod -RN
(再帰)を使用してACLを削除できます。
Googleバックアップや同期などのバックグラウンドバックアップソリューションは、インデックスファイルへのアクセスをブロックすると考えています。アプリケーションを閉じましたが、Sourcetreeにはまったく問題がありませんでした。 Dropboxは同じことをしているようです(@tonymayoral)。
Visual Studio Codeを閉じると(私の場合、ファイル保存で自動アップローダーバックグラウンドジョブが実行されます)、問題は解決しました。
ソリューションの功績は、私の友人であり同僚のアーネルです。
私の場合、それは同時実行EGitでした。 Eclipseを再起動すると、通常どおりに動作します。
Windowsボックスを使用している場合は、ソースツリーまたはgitターミナルに関係なく、使用しているプログラムが管理者として実行されていることを確認してください。同じエラーメッセージが表示されました。プログラムを右クリックして管理者として実行するか、そのプロパティを変更して常に管理者として実行することができます。
同じ問題がありました。コンピューターを再起動し、問題は解決しました。
この問題は、プロセスによってロックされた.git\index
が原因である可能性があります。
リンク Windowsでファイルまたはフォルダーをロックしているプロセスを見つける は、ロックされたファイルを見つけるための次のアプローチを指定します。
SysInternals Process Explorer-[検索]> [ハンドルまたはDLLの検索]に移動します。 [ハンドルまたはDLL部分文字列:]テキストボックスに、ファイルへのパス(例: "C:\ path\to\file.txt")を入力し、[検索]をクリックします。そのファイルへのオープンハンドルを持つすべてのプロセスがリストされます。
上記のアプローチを使用して、どのプロセスがロックされているか.git\index
を見つけてから、ロック実行可能ファイルを停止します。これで問題が解決するはずです。
たとえば、 Process Explorer Search は、.git\index
がvmware-vmx.exe
によってロックされたことを示します。 VMWare Player仮想マシン(共有フォルダー経由でgitリポジトリにアクセスした)を一時停止すると、問題が解決しました。
「git add」を試しましたか? 。すべての変更はありますか? (git reset HEADで不要な追加ファイルを削除できます)
十分なスペースがないことが問題です。クリーンアップして再試行
問題:gitで変更されたファイルをチェックアウトすると、このエラーが発生しました。 ABCとXYZの2人のユーザーがいました。ファイルにはABCのuid:gidがありますが、gitアクセスがなく、同じファイルをチェックアウトしようとしています。
私が試した解決策:XYZはgitアクセスを持ち、ファイルをSudoでチェックアウトしてみましたが、うまくいきました。
WindowsでGitExtensionsを使用すると、この問題が発生しました。リポジトリを含むフォルダーの現在のユーザー(私)に完全な許可を付与することで修正されました。
また、Git Extensionsからエラーが発生していても、Visual Studio 2015から同じファイルをコミットできました。
もう一度、.gitフォルダーから「インデックス」ファイルを削除する必要がありました
リベース中にこれを取得した場合:
これは、バックアップソフトウェア、ウイルス対策、IDE、その他のgitクライアントなど、リポジトリのインデックスファイルをロックしているソフトウェアが原因である可能性が最も高いです。
ほとんどの場合、ロックはほんの短い時間であるため、タイミングが悪く、運が悪い場合にのみ発生します。
ただし、git rebase --continue
は、次のコマンドが空のコミットであることについて文句を言います。
The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:
git commit --allow-empty
これを修正するには、git reset
を実行してgit rebase --continue
をもう一度試してください。
ここに私のために働いたものがあります:
コンテキスト:
サーバー上でプロジェクトを構築する
git status
はHEAD detached at <commit-SHA>
を返します
ローカルで行った操作で、このエラーが発生しました。すなわち:
ソリューション
<work-dir>/.git/index
を削除しました。git status
は、プロジェクト内のすべてのファイルが追跡されないことを示します(ここでは驚くことではありません)。git reset HEAD --hard
HEAD detached at <commit-SHA>
を実行するときにgit status
に戻りますが、次のことができるはずです。git checkout <some-branch>
そして、あなたは軌道に乗っています!
!!重要!!
これが機能するのは、私が「本当に」構築しているからです。コードに重要な変更は行われていません。実際に「開発時間」にいる場合は、まず作業内容を保存するか、別の方法に進むことをお勧めします。
それが役立つことを願っています:)。
私の場合は少し興味深いです:
Git logを実行して特定のコミットを確認しましたが、適切に終了しなかったため、ctrl + cを押して終了します。
その後、インデックスはロックされているようです。そこで、もう一度git logを実行し、Qを押して終了します。
問題が修正されました。 :)