git:切换分支并忽略没有提交的任何更改

我正在做一个git分支,准备提交我的修改,所以我提交了一个有用的提交信息。 然后我不知不觉地对那些不值得保留的代码做了小小的修改。 我现在想改变分支,但是git给了我,

错误:您对“X”进行了本地更改; 不能切换分支。

我以为我可以改变分支没有提交。 如果是这样,我怎么设置呢? 如果不是,我该如何摆脱这个问题呢? 我想忽略没有提交的小变化,只是改变分支。

你需要一个干净的状态来改变分支。 只有在不影响“脏文件”(如Charles Bailey在评论中所述)的情况下,才能允许分支签出。

否则,您应该:

  • 藏匿你目前的变化或
  • reset --hard HEAD (如果你不介意丢失那些微小的变化)或者
  • checkout -f (切换分支时,即使索引或工作树与HEAD不同,也可以继续进行,用于丢弃本地更改。

如果您想放弃更改,

 git checkout -- <file> git checkout branch 

如果你想保持这些变化,

 git stash save git checkout branch git stash pop 

好吧,应该是

 git stash save git checkout branch // do something git checkout oldbranch git stash pop 

跟随,

 $: git checkout -f $: git checkout next_branch 

请注意,如果您合并了远程分支机构或进行了本地提交,并希望返回到远程HEAD,则必须执行以下操作:

 git reset --hard origin/HEAD 

HEAD本身只会涉及到本地的提交/合并 – 有几次我忘记了,当我完全打算核实所有的改变/提交并返回到远程的时候,重置并且以“你的仓库是X提交时提交”科。

如果您更改了Git在切换分支时也需要更改的文件,它不会让您。 要放弃工作更改,请使用:

 git reset --hard HEAD 

那么,你将能够切换分支。