20

私は最近git stashを実行し、ブランチでいくつかの作業を行ってコミットしましたが、実行しようとしたときにこれらのエラーが発生しましたgit stash apply:

CONFLICT (delete/modify): app/controllers/orders_controller.rb deleted in Updated upstream and modified in Stashed changes. Version Stashed changes of app/controllers/orders_controller.rb left in tree.
CONFLICT (content): Merge conflict in app/models/product.rb

git status以下を示します。

 $ git status
# On branch develop
# Your branch is ahead of 'origin/develop' by 16 commits.
# Unmerged paths: 
#   (use "git reset HEAD <file>..." to unstage)
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#   deleted by us:      app/controllers/orders_controller.rb
#   both modified:      app/models/product.rb

「削除/変更」とマークされたファイルは、私が追加した新しいファイルであり、stash.
以前の状態に戻りたいと思いますgit stash-- ローカルの変更をコミットしていません。それを実現する方法を提案できますか?

ありがとう。

4

4 に答える 4

11

スタッシュを別の状態にポップしています。追加のコミットが 1 つある状態。さらに悪いことに、ご存知のように、コミットによってマージの競合が発生しました。

次の 2 つのオプションがあります。

  1. そのスタッシュを最新のコミットにポップし、競合を解決します
  2. スタッシュを前のコミットにポップします。

#2はあなたがやりたいことのように聞こえます。使用する:

    git stash branch new_branch [<stash>]  # <stash> will be the last one if not provided.
于 2012-04-07T16:34:11.860 に答える
0

競合を解決する必要があります。最新のリポジトリを更新したため、project.rb と orders_controller.rb の 2 つのファイルが最新のリポジトリで変更されています。同時に、ローカルの変更 (stash) によってこれら 2 つのファイルも変更されているため、適用すると競合が発生します。

ローカルの変更を適用するには、競合を解決する必要があります。

最初のファイル、orders_controller.rb については、最新のリポジトリが削除されています。後のコミットをプッシュするときに、それを保持しますか?

2 番目のファイル project.rb については、ファイル内の競合を解決する必要があります。

于 2012-04-07T16:40:29.253 に答える