web-dev-qa-db-ja.com

Gitプルは自身を中止し、ローカルファイルの変更はマージによって上書きされます

友達が同時に作業しているファイルを変更しました。いくつか変更を加えましたが、今はプッシュしたいのですが、最初にプルする必要があると表示されています。 git pull、それは言う:

エラー:次のファイルに対するローカルの変更はマージによって上書きされます:マージする前に、変更をコミットするか、それらを隠してください。
中止

ファイルをマージするにはどうすればよいですか?私がそれをした場合、私の友人からのファイルは完全に変更されますか?私は彼がいくつかのものを追加し、私が私のものを追加したと確信しています。変更はどのように処理されますか?

12
Sasha_8

1つのアプローチは、最初にそのファイルをコミットしてからプルすることです。

git add filename
git commit 
//enter your commit message and save 
git pull 

別のアプローチは、変更を隠してからプルすることです。次にスタッシュを適用します。

git stash
git pull
git stash apply stash@{0}
20
nyzm

行う git commit その後 git pull。最初に友達の変更を取得してから、変更をマージします。何も失われません。

変更間の競合は次のように表されます。

Here are lines that are either unchanged from the common
ancestor, or cleanly resolved because only one side changed.
<<<<<<< yours:sample.txt
Conflict resolution is hard;
let's go shopping.
=======
Git makes conflict resolution easy.
>>>>>>> theirs:sample.txt
And here is another line that is cleanly resolved or unmodified.

または、インタラクティブなマージツールを使用することもできます。

2