I have messed up my git repo a little. I worked on a feature in a separate branch. After finishing the work, I switched to the master to merge it into, but my partner pushed a few files which came into conflict with mine. After the merge, the conflict and pushing the new changes, I saw that I committed the older changes of my partner too.
Now I want to redo this commit/merge. I tried
git reset --soft HEAD^
but when I wanted to push, I got this error message Merge the remote changes before pushing again
.
Can anyone help me?
Your feature branch will still point to your work. You will not lose those changes.
As plaes said, you can reset master back one with
git reset --hard HEAD^
If you want to grab some specific files from your branch without merging, you can check them out:
git checkout yourbranch -- file1 file2 etc
If you want some files from master from before the merge you can also check these out:
git checkout master^ -- file3 file4 etc
This is not ideal but it is what is needed sometimes. A merge /may/ mean that you reject some changes from either side in a merge. The best way to attain a proper merge is to:
git merge --no-commit yourbranch
from master, then run the git checkout commands from above and finally commit:
git add . -A
git commit
When you push this branch now, you will need to add the force
option
git push --force
or
git push -f
Hope this helps.