在中止git中的当前更改之后切换分支

我克隆了一个git repo,然后开始在其主分支中玩耍。 过了一段时间,我想忽略我刚刚做出的更改(不提交它们),并切换到另一个分支。 但是,它阻止我切换,因为有未提交的更改。 我怎么忽视他们呢? 这是发生了什么事情:

$ git checkout gh-pages error: Your local changes to the following files would be overwritten by checkout: somefile.txt Please, commit your changes or stash them before you can switch branches. Aborting 

选项1

 git checkout -f gh-pages 

选项2

 git reset --hard # beware: don't make that a habit git checkout gh-pages 

只是为了完整性,对于那些通过search降落在这里的人来说:尽pipeOP特别要求一个解决scheme而没有隐藏 ,但值得一提的是,隐藏确实是一个非常好的select:

该命令保存您的本地修改,并恢复工作目录以匹配HEAD提交。

所以你可以简单地

 git stash 

这就像重置为HEAD。 当绝对肯定地确信那些未经承诺的改变确实是毫无价值的

 git stash drop 

你甚至可以有上面的文档链接中提到的多个窗口等。

我会推荐这种做法,因为它使人们习惯于在重置之前加倍思考,而不需要花费大量的成本。

您可以忽略所有未提交的更改。

git reset --hard HEAD

如果你真的确定要抛弃未经许可的变更(即那些已经上演的变更以及那些正在工作的变更),你可以这样做:

 git reset --hard 

一般来说,存储通常更安全

如果您有未执行文件,请尝试:

 git checkout -- . 

要么

 git checkout -- filename 

git add -A git藏匿

这将清除你所做的所有更改(只有那些没有提交的)

您可以放弃您在特定文件中所做的更改:

 git checkout somefile.txt 

然后顺利地跳转到分支:

 git checkout gh-pages