2017-12-11 23 views
-2

私はリモートのものと同期しようとしているローカルのGitリポジトリを持っています。 1つのバイナリファイルがありますが、私は触れませんでした。しかし、私はいくつかの奇妙な理由のためにrebaseすることはできません:Gitリポジトリをpull/rebaseできないのはなぜですか?

git config --local core.autocrlf false 
git reset --hard --quiet 
git clean --force -d 
git fetch --quiet 
git checkout master 
Already on "master" 
git rebase --abort 
git stash 
warning: CRLF will be replaced by LF in test_assets/favicon.ico. 
The file will have its original line endings in your working directory. 
warning: CRLF will be replaced by LF in test_assets/favicon.ico. 
The file will have its original line endings in your working directory. 
git rebase --strategy-option=theirs origin/master 
Cannot rebase: You have unstaged changes. 
Please commit or stash them. 

M test_assets/favicon.ico 

私は何ができますか?

+0

「コミットするか隠すか」 – Marvin

+1

メッセージには、あなたがrebaseする前に、変更を行う必要があると言われました –

+0

私は何も変更をしませんでした。 – yegor256

答えて

3

favicon.icoファイルは、一般にbinary fileです。あなたのGitの警告:

warning: CRLF will be replaced by LF in test_assets/favicon.ico. 

あなたは、おそらくしているテキストファイルとして扱うためにあなたのGitを意図せず、指示していることを教えて。

Gitは、リポジトリから出てくるときに、あなたの指示に従ってファイルを変更しています。だからこそ、変更されたものとして現れ、Gitに伝えたい変更をコミットするまで、マージやリベースすることができないのはなぜですか?

解決方法は、このファイルがテキストであることをGitに伝えるのを止めることです。 ここで、は、このファイルがテキストであることをGitに伝えていますが、これには複数のメカニズムがありますが、.gitattributesファイルがある場合は、これを使用してGitに実際にこのファイルを伝えることができます*.icoという名前のファイルには、行を追加することで、間違いなくないテキストです。(あなたはgit addgit commit新しいが、それは.gitattributesを更新したコミットにすることができます)その.gitattributesファイルへ

*.ico -text 

関連する問題