我工作的Git分支,并准备提交我的变化,所以我做了一个有用的提交信息的提交。 我心不在焉,然后作出不值得保留的代码小的改动。 我现在想换枝,但混帐给我,
错误:你有本地修改为“X”; 不能切换分支机构。
我以为我可以改变分支不提交。 如果是这样,我怎么能设置呢? 如果没有,我怎么出这个问题的? 我想忽略不提交上的细微变化,只是变化的分支。
我工作的Git分支,并准备提交我的变化,所以我做了一个有用的提交信息的提交。 我心不在焉,然后作出不值得保留的代码小的改动。 我现在想换枝,但混帐给我,
错误:你有本地修改为“X”; 不能切换分支机构。
我以为我可以改变分支不提交。 如果是这样,我怎么能设置呢? 如果没有,我怎么出这个问题的? 我想忽略不提交上的细微变化,只是变化的分支。
你需要一个干净的状态更改分支机构。 如果它不影响“脏文件”(作为分支检出只准查尔斯·贝利的言论答记者问)。
否则,你应该:
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
然后,你就可以切换分支。
这些答案都不帮我,因为我还甚至复位和存储后有未跟踪文件。 我必须做:
git reset --hard HEAD
git clean -d -f
切换到一个新的分支输球的变化:
git checkout -b YOUR_NEW_BRANCH_NAME --force
切换到现有的分支丢失的变化:
git checkout YOUR_BRANCH --force
关闭终端,请删除您的项目是文件夹,然后再克隆项目瞧。
如果你想保留更改和改变分支在单行命令
git stash && git checkout <branch_name> && git stash pop
很给力检出一个分支
git checkout -f <branch_name>
强制检查出一个分支告诉混帐砸你已经在当前分支的所有更改,并签出所需的一个。
或者如果你要签承诺
git checkout -f <commit-hash>
“认为我可以改变分支没有犯。如果是这样,我怎么能设置呢?如果不是,我怎么出这个问题?”
这个问题的答案是不 ,那是字面的Git您保留的所有更改轨道理念,每个节点(即提交)必须是先进的,具有最新的您所做的更改,除非您已作出了新的承诺,当然。
然后使用它们藏
git stash
然后unstash在预期的分支,使用您的更改
git stash apply
这将适用于你的变化,但让他们在藏匿排队了。 如果你不想让他们在藏匿栈,然后使用弹出他们
git stash pop
这相当于apply
,然后drop