Finnnn
Finnnn

Reputation: 3580

ignoring merges in git

I've not worked on a project quite some time and have just tried to pull the latest version.

I can't remember the last time I'd worked on the project but I'd obviously had changes made to the Master that I'd not pushed. As I've received some conflict warnings.

Is there anyway to ignore my previous commits and pull down the master to overwrite my files?

What do you recommend I do in this situation?

Upvotes: 1

Views: 57

Answers (2)

Jean-Pascal Billaud
Jean-Pascal Billaud

Reputation: 303

I guess an easy way would be to backup your local master branch and recreate it... something like:

git fetch origin
git checkout master
git branch master -m old-master
git checkout -b master origin/master
git branch -D old-master (if you don't care about your commits there)

Hope it helps,

Upvotes: 0

Mark Longair
Mark Longair

Reputation: 467191

I'm assuming that you've resolved the conflicts now, so that the first commit in git log is a merge commit.

Firstly, it's a good idea save where your old master branch was, just in case you want to go back. You can do that with:

git branch old-master master^

Then, if you want to reset your master branch to the version of master that you've just fetched from the origin repository, you can do that with git reset --hard:

# Make sure that you're on the master branch:
git checkout master

# Make sure the remote-tracking branches from origin are up-to-date:
git fetch origin

# Check that there's no output from "git status":
git status

# Now reset master to where origin/master points to:
git reset --hard origin/master

Note that git reset --hard is a dangerous command - it will throw away any uncommitted changes, which is why I suggest making sure that the output of git status is clean before using it.

Upvotes: 2

Related Questions