如何获取远程分支,覆盖本地提交?

时间:2016-02-15 09:29:48

标签: git

我在我的本地master分支机构中做了一些提交。现在我想扔掉它们并最终得到等于origin/master的状态。

我不想git reset --hard,因为这些提交是另一个分支的快进合并的结果,所以我和远程提交是混合的。

目前我唯一能想到的解决方案是

git fetch
git checkout origin/master
git branch -D master
git checkout -b master
git remote origin/master

肯定有更快的方法吗?

2 个答案:

答案 0 :(得分:5)

  

我不想git reset --hard,因为这些提交是另一个分支的快进合并的结果,所以我和远程提交是混合的。

我不明白这个论点。

git reset --hard origin/master会重置您当前签出的分支,因此它指向与origin/master完全相同的提交;然后它将覆盖工作目录中的所有文件以反映该更改。

因此,如果您当前在本地master分支上,则此命令会将您的本地分支和工作目录重置为远程master分支的状态,从而有效地丢弃您的任何内容在那个分支上当地做了。

答案 1 :(得分:0)

git reset --hard origin/master

完全相同
git checkout origin/master
git branch -D master
git checkout -b master

保留git fetch命令,确保使用origin/master的最新信息。

您建议的最后一个命令(git remote origin/master)是一个不存在的命令;而且我不知道你想做什么。无论如何,这都是不必要的。