如何放弃对分支所做的所有更改?

我在一个分支(即design )工作,我做了一些改变,但我需要放弃他们,并重置它以匹配存储库版本。 我认为git checkout design会做到这一点,但它只是告诉我,我已经在分支design ,我有3个修改的文件。

我将如何放弃这些变化,并获得现在在远程服务器上的分支?

注意:你不能这样做。

试试git checkout -f这将放弃所有在所有分支机构和主机上没有提交的本地修改。

混帐重置 – 哈尔可以帮助你,如果你想扔掉自上次提交以来的一切

如果你不想在design任何改变,绝对不希望它与远程分支相匹配,你也可以删除分支并重新创build:

 # Switch to some branch other than design $ git br -D design $ git co -b design origin/design # Will set up design to track origin's design branch 
 git diff master > branch.diff git apply --reverse branch.diff 

@Will, git immersion是一个非常好的和简单的git教程。 它会告诉你如何撤销对以下情况的更改:非暂存,分阶段和承诺。 实验室14-18

在源代码根目录: git reset ./ HEAD <--un-stage any staged changes git checkout ./ <--discard any unstaged changes

当你想放弃你的本地分支的更改时,可以使用git stash命令来隐藏这些更改。

git储存保存“some_name”

您的更改将被保存,您可以稍后检索,如果您想要或可以删除​​它们。 做完这些之后,你的分支将不会有任何未提交的代码,你可以使用git pull从主分支中获取最新的代码。