我正在一个git分支上工作,并准备提交我的更改,所以我用一个有用的提交消息做了一个提交。然后,我心不在焉地对代码做了一些不值得保留的小更改。我现在想改变分支,但是git给了我,
错误:您对“X”进行了本地更改;不能切换分支。
我可以在不提交的情况下更改分支吗?如果是,我该如何设置呢?如果不是,我该如何解决这个问题?我想在不提交的情况下忽略较小的更改,只更改分支。
我正在一个git分支上工作,并准备提交我的更改,所以我用一个有用的提交消息做了一个提交。然后,我心不在焉地对代码做了一些不值得保留的小更改。我现在想改变分支,但是git给了我,
错误:您对“X”进行了本地更改;不能切换分支。
我可以在不提交的情况下更改分支吗?如果是,我该如何设置呢?如果不是,我该如何解决这个问题?我想在不提交的情况下忽略较小的更改,只更改分支。
当前回答
Git checkout -f your_branch_name
git checkout -f your_branch_name
如果您在恢复更改时遇到困难:
git checkout .
如果您想删除未跟踪的目录和文件:
git clean -fd
其他回答
如果您希望保留更改并在单行命令中更改分支
git stash && git checkout <branch_name> && git stash pop
遵循以下步骤:
Git stash save将保存所有的更改,即使您在分支之间切换。
Git保存
Git签出任何其他分支,现在因为你保存了你的更改,你可以移动任何分支。上面的命令将确保您的更改被保存。
Git结帐分支
现在,当您回到分支时,使用这个命令取回所有更改。
Git隐藏pop
Git checkout -f your_branch_name
git checkout -f your_branch_name
如果您在恢复更改时遇到困难:
git checkout .
如果您想删除未跟踪的目录和文件:
git clean -fd
如果您想放弃更改,
git checkout -- <file>
git checkout branch
如果你想保留这些变化,
git stash save
git checkout branch
git stash pop
简单的答案:
是强制签出分支吗
git checkout -f <branch_name>
强制签出分支是告诉git放弃当前分支中所做的所有更改,并签出所需的分支。
或者万一你在检查一个提交
git checkout -f <commit-hash>
“我认为我可以不用承诺就可以改变分支。如果是,怎么做 我能安排一下吗?如果不是,我该如何解决这个问题?”
答案是否定的,这就是Git的哲学,你要跟踪所有的更改,并且每个节点(即提交)必须与你所做的最新更改保持一致,当然,除非你已经进行了新的提交。
你决定留着零钱?
然后把它们藏起来
git stash
然后使用
git stash apply
这将应用你的变化,但保持他们在stash队列太。如果你不想把它们放在藏物堆里,那就用它们把它们弹出
git stash pop
这相当于apply然后drop