2017-01-09 3 views
2

私は削除したい2番目のファイルに対してこのコマンドを実行しています(最初は.gitignoreにあるJetBrainsの.ideaフォルダファイルでした)。こと:gitは私にはステージングのない変更がありますが、表示しません

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch gf5/console/basic.php' --prune-empty --tag-name-filter cat -- --all 
Cannot rewrite branches: You have unstaged changes. 

それでは、どのように私はそれがそれらをリストしていないときにgitが参照している、と私はこれをどのように修正すればよいものを「unstaged」ファイルを知っていますか?

PS問題は隠されていませんが、私は何も持っておらず、このレポを隠していません。

注:私はgit statusを行なったし、この受信:

Changes to be committed: 
    (use "git reset HEAD <file>..." to unstage) 

    modified: gf5/console/basic.php 

Changes not staged for commit: 
    (use "git add <file>..." to update what will be committed) 
    (use "git checkout -- <file>..." to discard changes in working directory) 

//(and a whole long list of files) 
+1

'git status'は何かを返しますか? –

答えて

5

AHAを!私は何が起こっているのか考え出した。最後のいくつかの文章を読んで少し洞察してください。

答えが最初にやることだった。

git status 

これは、私は、彼らが何らかの形でのgitの心の中で「削除」されている意味と推測REDで変更されたファイルを、示しました。私は、やった:

git add --all 

をそこから私は(残念私は、コマンドラインですべての方法滞在していなかった)SourceTreeを使用して、すべての上演のファイルをコミット。私は先に進み、同時に変更をサーバーにプッシュしましたが、これはオプションです。

上記のコマンドが正常に機能しました。

上記のコマンドを別のファイルで実行しようとすると、同じ問題が発生しました。だから私は再びgit statusを走ったし、それは私がちょうど履歴から削除されたファイルがまだであることが判明したので、あなたはこれを実行する必要があります。

また
git rm /previous_file_you_just_removed_from_history.php 

を明確にするために、フィルタ分岐コマンドは削除されますすべてのコミットからそのファイルの履歴を削除しますが、そのファイルに対する変更は削除されません。私。削除されたファイルは、それまでに行ったすべての変更の合計です。私はこれが他の誰かのためにこの概念をクリアするのに役立つことを願っています

+2

いいえ、「削除済み」ではなく、変更されたばかりです。 –

関連する問題