why git stash cannot abandon the changes made just now?

21,830

Solution 1

Run git merge --abort.

You are in the middle of a merge, so stashing is definitely not something you should do (you would lose the history information associated with the merge).

Solution 2

git stash is to save the changes for future use, not for canceling a conflicted state, that's why it doesn't work.

Instead use git reset ORIG_HEAD (see How to undo a git pull?)

Share:
21,830
hugemeow
Author by

hugemeow

http://serverfault.com/search

Updated on July 05, 2022

Comments

  • hugemeow
    hugemeow almost 2 years

    i forked a project from github, and the origin point to my own github repo, remote point to its original repo, since i want to get update from remote,

    i use git pull remote branch_name, then my local repo is in conflict mode, now i want to cancel the effect of git pull, so i use git stash, but was surprised to find i failed to do this? what's wrong?

    the detailed info is as follows:

    [mirror@home weechat]$ git status
    # On branch master
    # Unmerged paths:
    #   (use "git add/rm <file>..." as appropriate to mark resolution)
    #
    #       both modified:      CMakeLists.txt
    #       both modified:      ChangeLog
    #       both modified:      NEWS
    #       both modified:      configure.in
    #       both modified:      po/cs.po
    #       both modified:      po/de.po
    #       both modified:      po/es.po
    #       both modified:      po/fr.po
    #       both modified:      po/hu.po
    #       both modified:      po/ru.po
    #       both modified:      po/weechat.pot
    #       deleted by us:      src/irc/irc-server.c
    #       both modified:      weechat.spec
    #
    no changes added to commit (use "git add" and/or "git commit -a")
    [mirror@home weechat]$ git stash
    CMakeLists.txt: needs merge
    ChangeLog: needs merge
    NEWS: needs merge
    configure.in: needs merge
    po/cs.po: needs merge
    po/de.po: needs merge
    po/es.po: needs merge
    po/fr.po: needs merge
    po/hu.po: needs merge
    po/ru.po: needs merge
    po/weechat.pot: needs merge
    src/irc/irc-server.c: needs merge
    weechat.spec: needs merge
    CMakeLists.txt: needs merge
    ChangeLog: needs merge
    NEWS: needs merge
    configure.in: needs merge
    po/cs.po: needs merge
    po/de.po: needs merge
    po/es.po: needs merge
    po/fr.po: needs merge
    po/hu.po: needs merge
    po/ru.po: needs merge
    po/weechat.pot: needs merge
    src/irc/irc-server.c: needs merge
    weechat.spec: needs merge
    CMakeLists.txt: unmerged (118d776a202cfc6688290e96fca20ac4f8631f5e)
    CMakeLists.txt: unmerged (d05c9a9711a965dcad0aefa03b79ae7a4f5cb8fb)
    CMakeLists.txt: unmerged (dd2b14cb188e1927e098705d77e922ad530e232b)
    ChangeLog: unmerged (764711936b54aa75812828e1ab15e1632aa3eb9d)
    ChangeLog: unmerged (e00d4bf654c3d199e24bf4910b066f1659fea4b6)
    ChangeLog: unmerged (dbec2315ffc1f15feede248abe3ed85beaa82ed7)
    NEWS: unmerged (457d5443548e6130b50e42a9c87a6f2e8ba4c596)
    NEWS: unmerged (706cee4b8853013f20129ccb2fa9057b7500fceb)
    NEWS: unmerged (33afffbac62399faa32e2560a9accd95dd9a050e)
    configure.in: unmerged (8e1058e5e00a5e671459cee8300420b0488560d9)
    ...
    fatal: git-write-tree: error building trees
    Cannot save the current index state
    

    so how to cannel the effect of git pull? should i delete repo, and download it again?