競合のため「git stash pop」できません


18

ローカルgitリポジトリがあり、いくつかの変更されたファイルがありました。その後、何かの修正をすばやく作成する必要があったので、

  • 私の変更を隠しました(git stash)
  • 編集済みファイル(viファイル)
  • コミット済み(git commit)
  • ポップスタッシュ(git stash pop)

これにより、競合が発生しました。

# On branch master
$ git stash pop
Auto-merging page/search.php
CONFLICT (content): Merge conflict in page/search.php
$ git status
# On branch master
# Unmerged paths:
#   (use "git reset HEAD <file>..." to unstage)
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#   both modified:      page/search.php

変更をクリーンアップしてスタッシュを再適用しようとすると、同じことが起こります(競合)。page / search.phpについてはあまり気にしませんが、他のファイルをスタッシュから取り出したいです。

stashをパッチに変換する方法、またはstashされたときのファイルを単純に取得する方法はありますか?

回答:


19

stashは既に他のファイルに適用されています。page/search.php手動でマージする必要があるのはそれだけです。その後git reset、変更をステージング解除してハッキングを続けるかgit add ...、コミットするだけです。


はい。丁度。-pでパッチを回復した後、他のファイルが既に更新されていることがわかりました。
ロマニンシュ

3
非常に素晴らしい、git stash pop、その後、あなたの競合を解決git add xその後、git resetステージングのそれを得るために、ありがとう!
クアン

@Quang stash pop --continueどのエイリアスがにあるはずresetです。:)
カズ

12

で解決:

git stash show -p

それは私の一日を救った、=)
アナトリーテクトニック

-pここで何を行いますか?
Joostの

2
公演?-p?これは何ですか?競合を解決するために「ショー」をどのように関連付けることができますか?
アーノルドロア

1
このコマンドは、スタッシュで行われた変更を表示し、手動でマージできるようにします
デズモンドWeindorf

1
coderwall.com/p/anxp0g/force-a-git-stash-popgit stash show -p | git apply && git stash dropから見つけました。実行する前に動作することを確認しようとしています。:-)
PatS

7

git stash popコマンドの実行後、git stash drop手作業で競合を解決し、man git-stash提案に従って手動で解決する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.