2016-11-24 19 views
1

git pullにしようとしていると、マージによってローカルの変更が上書きされるという私には言いません。問題は、それが指定したファイル、上書きされるファイルが削除されていることです。私はそれを以前は持っていましたが、私はそれを削除したので、エディタのツリービューもファイルシステムからも見ることはできません。それはどんなバグですか?どのように私はそれを取り除くと引き出すことができますか?Gitは、削除されたファイルがマージによって上書きされると言っています

+0

:ここ

は、いくつかの可能な解決策に言及参照です - "git checkout - app/webroot/css/alert.css" –

答えて

3

すべての変更を確定してください。それ以外の場合は、すべての変更を隠しておきます。

$ git add . 
$ git stash 
$ git pull origin <branch-name> 
+0

私は間違いなくすべての変更をコミットしました –

+0

"git status"コマンドの結果は何ですか? –

+0

@TristanTzara追加/変更中に行った変更だけでなく、削除中にも変更が加えられます。この場合、上書きとは、削除したファイルが他のブランチに戻ってきたことを意味しますので、作業ディレクトリーへの変更を保存するためにstash/commitを実行する必要があります。 – cst1992

0

これはバグではありません。それは変更です。あなたが引っ張ってしまうと効果がなくなります(引っ張られた支店には異なるコミットがあるため)。 Gitは、あなたがその変更を保存することを望みます。

スティッシュは、git stashを使用して変更するか、別の/新しいブランチでコミットしてください。

0

これは私が知る限り、バグではありません。私は、この状況は、マージ中に入っているブランチにまだ存在する特定のファイルを削除したために起こったと考えています。

git pullを介してマージすると、私たちに示したようには機能しませんが、リベースによるプルは機能するようです。これを試してください:

git pull --rebase origin yourBranch 

新しいベースの上にそれぞれのコミットを適用すると、ほとんどの場合、マージの競合が発生します。また、競合には問題のファイルがそこに現れるが実際に削除されるべき状況が含まれている可能性があります。この場合、解決が必要な場合は、実際にはファイルを削除することが考えられます。例えばオーバーライトエラーを与える特定のファイルをチェックアウトしてください

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

関連する問題