2017-08-26 12 views
2

私はgit repoをクローンしました。私はローカルでそのレポに変更を加えていなかったが、私はgit pullを実行すると、このメッセージが現れます:gitのリセットの変更が戻ってきました

error: Your local changes to the following files would be overwritten by merge: ....

私はgit reset --hard headを、私は変更が元に戻されGithubのデスクトップアプリで見ることができます。

しかし、私は再びgit pullを実行すると、変更が戻ってくると私は再びGitHubのデスクトップでそれらを見て、再び同じメッセージことができます。ここで何が間違っていますか?

編集1

私はgitの状態を実行し、それがGithubのデスクトップと同じファイルが表示されます。どうすれば変更を元に戻すことができますか?私はこれらの変更をしなかった。私は2台のマシンを使用しています。これらの変更は他のマシンで行われ、そこで追加してコミットし、オンラインレポにプッシュしました。なぜ私はこれらの変更を私がそれらを引っ張っただけのマシンで見るのかわかりません。

編集2

これは、Mac上で発生し、gitのクリーン-f -dを実行することは助けにはなりませんでした。ファイルは実際には追跡されますが、リセット/元に戻すことはできません。 - Arian Hosseinzadeh 4時間前に投稿されました

+1

まあ、Gitはあなたがローカルのファイルを変更思います。 'git status'を実行して、あなたが変更したと思うファイルを確認しましたか? –

+1

'git status'の内容を参照してください。これは、モードの変更やCRLFの変更が原因で発生することがあります。 (Windowsが単なる存在であれば誰もが痛みを感じます) – o11c

+0

また、 'git status'を実行すると、現在ブランチに入っていて、' git pull'が上書きしようとしているファイルがあります。その場合、 'git reset -hard'はあなたのためにそれらのファイルを削除しません。ローカルマシン上のファイルを上書きするファイルのバージョンを' pull 'するかもしれません。 'git clean -f -d'を実行すると、作業コピー内の未追跡のファイルやディレクトリを取り除くことができます。 –

答えて

0

git config pull.rebase true 
git config rebase.autostash true 

で試してみてくださいそして、gitのプルは、最初に任意の変更されたファイルを隠しフェッチ、(フェッチ)リモートブランチの上にコミットローカルをリベースする必要があります。

git config core.autocrlfが返すものもチェックしてください:偽に設定してから、git pullをもう一度お試しください。

1

これは、変更されたファイルは、Eclipseによって生成されたファイル.classだったことが判明しました。私は日食を停止し、地元のレポを削除し、再びそれをクローン化し、.gitignoretargetディレクトリを追加し、その後に日食を開始した。最後に、変更をgithub repoにプッシュしました。

+1

よくやった、私の答えよりも詳細。 +1 – VonC

関連する問題