11

私は git-svn を使用しており、実行しようとしていますgit svn rebase

エラーが発生します:

Your local changes to the following files would be overwritten by checkout:
<filename>
Please, commit your changes or stash them before you can switch branches.

以前に を実行git update-index --assume-unchanged <filename>してファイルに変更を加えましたが、今回git update-index --no-assume-unchanged <filename>はそれを取り除くために実行しました。

git status変更を報告せずgit stash、隠しておくものは何もないと言います。

ファイルが存在しないことを確認しまし.gitignore.git/info/exclude

この問題をさらにデバッグするにはどうすればよいですか?

4

2 に答える 2

12

私はこの問題を抱えていました.Timの答えは解決策を見つけるのに役立ちました.

過去に私は実行していました:

git update-index --assume-unchanged index.php

問題

リモートで別のブランチに一連の変更を加えた後、ローカルで切り替えようとすると、上書きの警告が表示されました。

git checkout other-branch

error: Your local changes to the following files would be overwritten by checkout:
index.php
Please, commit your changes or stash them before you can switch branches.
Aborting

スタッシングが機能していませんでした。

git stash save --keep-index
No local changes to save

ソリューション

git update-index --no-assume-unchanged index.php
git add index.php
git commit

その後。

git checkout other-branch

成功!

于 2013-07-10T13:55:44.903 に答える
11

skip-worktreeビットが設定されていることが判明したので、実行する必要がありました

git update-index --no-skip-worktree <filename>

実行してこれを見つけました

git ls-files -v | grep "^[^H]"

(またはgit ls-files -v | where { $_ -match "^[^H]"}Windows Powershell を使用)

入力git help ls-filesは、出力が何を意味するかを説明しました。

于 2012-12-20T17:57:03.510 に答える