web-dev-qa-db-ja.com

マージされていないファイルがあるため、プルできません。gitstashは機能しません。コミットしたくない

引っ張りたいだけです。 GemfileとGemlockファイルを無視するための変更があります。それらを上書きしてプルするだけで満足です。変更を隠してみましたが、うまくいきませんでした。私は何をしますか?

git pull
M   Gemfile
U   Gemfile.lock
Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>'
as appropriate to mark resolution, or use 'git commit -a'.
~/projects/sms/apps2/apps2_admin(apps2)$ git stash save "saved"
Gemfile.lock: needs merge
Gemfile.lock: needs merge
Gemfile.lock: unmerged (4ea16799dba7bfe1db28adecf36dee1af5195c1a)
Gemfile.lock: unmerged (e77439c9f86d1d0eda7ae0787e3e158f90959e68)
Gemfile.lock: unmerged (d690d3860db1aa8e46c1bb2f4de3e52a297b5c26)
fatal: git-write-tree: error building trees
Cannot save the current index state
~/projects/sms/apps2/apps2_admin(apps2)$ git pull
M   Gemfile
U   Gemfile.lock
Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>'
as appropriate to mark resolution, or use 'git commit -a'.
36
JZ.

git checkout <file>を使用して、コミットされたバージョンのファイルをチェックアウト(変更を破棄)するか、git reset --hard HEADを使用して、すべてのファイルのコミットされていない変更を破棄できます。

38
Amber
git fetch Origin
git reset --hard Origin/master
git pull

説明:

  • Fetchはすべてを別のリポジトリ、この場合は「Origin」とマークされたリポジトリからダウンロードします。
  • リセットすると、変更が破棄され、リポジトリ「Origin」の前述のブランチ「master」に戻ります。
  • Pullは、リモートリポジトリからすべてを取得して統合します。

http://git-scm.com/docs のドキュメントを参照してください。

55
Ricardo Peres

私はこれらの両方を試してみましたが、それでも競合が原因で失敗します。私の忍耐の終わりに、私はマスターを別の場所にクローンし、すべてを他のブランチにコピーしてコミットしました。続けさせてくれました。 「-X theirs」オプションはこれを行うべきでしたが、そうではありませんでした。

git merge -s recursive -X theirs master

エラー:マージされていないファイルがあるため、「マージ」はできません。ヒント:作業ツリーでそれらを修正し、ヒント:してから、「git add/rm」をヒントとして使用します。致命的:未解決の競合のために終了します。

2
max

私は同じエラーがありましたが、それを解決します:git merge -s recursive -X theirs Origin/master

1
chacham15