我在我的本地master
分支机构中做了一些提交。现在我想扔掉它们并最终得到等于origin/master
的状态。
我不想git reset --hard
,因为这些提交是另一个分支的快进合并的结果,所以我和远程提交是混合的。
目前我唯一能想到的解决方案是
git fetch
git checkout origin/master
git branch -D master
git checkout -b master
git remote origin/master
肯定有更快的方法吗?
答案 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
)是一个不存在的命令;而且我不知道你想做什么。无论如何,这都是不必要的。