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
那么,你将能够切换分支。