在中止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