I've read all of the similar questions on this; it seems that none of the following have worked:
Delete offending files
git reset --hard HEAD
git stash
git pull
Nearly every combination, stashing changes and pulling from repository, results in unmergable files. I'd like to discard all local changes and just use the remote, but I cannot clone again (bandwidth and internet usage limitations with the developer trying to do this). How do I do this?
Just tried:
git stash
git pull
Also did not work.
More Info
There is one local commit, and the upstream has a commit as well. I've thus tried git pull --rebase
but it's still not working properly... That gives me errors - "exiting because of an unresolved conflict". If I do git stash, git reset --hard HEAD, git pull --rebase
, I get the error "pull is not possible, unmerged changes..."
This question is related to
git
If you ever happen to get this issue after running a git fetch
and then git is not allowing you to run git pull
because of a merge conflict (both modified / unmerged files, and to make you more frustrated, it won't show you any conflict markers in the file since it's not yet merged). If you do not wish to lose your work, you can do the following.
stage the file.
$ git add filename
then stash the local changes.
$ git stash
pull and update your working directory
$ git pull
restore your local modified file (git will automatically merge if it can, otherwise resolve it)
$ git stash pop
Hope it will help.
I got solved with git remove the unmerged file locally.
$ git rm <the unmerged file name>
$ git reset --hard
$ git pull --rebase
$ git rebase --skip
$ git pull
Already up-to-date.
When I send git commit afterward:
$ git commit . -m "my send commit"
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
Assuming you want to throw away any changes you have, first check the output of git status
. For any file that says "unmerged" next to it, run git add <unmerged file>
. Then follow up with git reset --hard
. That will git rid of any local changes except for untracked files.
Ryan Stewart's answer was almost there. In the case where you actually don't want to delete your local changes, there's a workflow you can use to merge:
git status
. It will give you a list of unmerged files.git commit
Git will commit just the merges into a new commit. (In my case, I had additional added files on disk, which weren't lumped into that commit.)
Git then considers the merge successful and allows you to move forward.
I've had luck with
git checkout -f <branch>
in a similar situation.
http://www.kernel.org/pub//software/scm/git/docs/git-checkout.html
Solved, using the following command set:
git reset --hard
git pull --rebase
git rebase --skip
git pull
The trick is to rebase the changes... We had some trouble rebasing one trivial commit, and so we simply skipped it using git rebase --skip (after having copied the files).
There is a solution even if you don't want to remove your local changes.
Just fix the unmerged files (by git add
or git remove
). Then do git pull
.
Source: Stackoverflow.com