忽略git合并

问题描述:

我还没有在一个项目上工作了一段时间,只是试图拉最新版本。忽略git合并

我不记得上次我参与这个项目的时间,但我显然已经改变了主人,我没有推动。因为我收到了一些冲突警告。

有无论如何忽略我以前的提交,并拉下主要覆盖我的文件?

你有什么建议我在这种情况下做?

我假设你现在已经解决了冲突,因此git log中的第一个提交是合并提交。

首先,保存旧的master分支是个好主意,以防万一你想回去。你可以做到这一点:

git branch old-master master^ 

然后,如果你想你的master分支重置为您从origin库刚取出的的master版本,你可以做到这一点与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 

请注意,git reset --hard是一个危险的命令 - 它会丢弃任何未提交的更改,这就是为什么我建议在使用之前确保git status的输出是干净的。

+0

这是伟大的感谢 - 的“git的分支OLD- master master ^命令对我来说是一个新的命令。很有用。 – Finnnn

+1

要添加一点,'''后缀'''意味着采取'主'的第一个父母。 (你也可以通过第一个父母为祖父母做'master ^^',等等。)合并提交的第一个父母总是被合并的那个,也就是你合并之前的提交。因此'master ^'将在合并之前成为你的主人。你也可以用'master @ {1}'做到这一点,它给你记录在reflog中的主分支的前一个位置 - 在这种情况下它们应该是相同的,但有些可能表明后者更明显。 –

我想一个简单的方法是将备份您本地的master分支,并重新创建它...是这样的:

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) 

希望它能帮助,