我正在一个git分支上工作,并准备提交我的更改,所以我用一个有用的提交消息做了一个提交。然后,我心不在焉地对代码做了一些不值得保留的小更改。我现在想改变分支,但是git给了我,
错误:您对“X”进行了本地更改;不能切换分支。
我可以在不提交的情况下更改分支吗?如果是,我该如何设置呢?如果不是,我该如何解决这个问题?我想在不提交的情况下忽略较小的更改,只更改分支。
我正在一个git分支上工作,并准备提交我的更改,所以我用一个有用的提交消息做了一个提交。然后,我心不在焉地对代码做了一些不值得保留的小更改。我现在想改变分支,但是git给了我,
错误:您对“X”进行了本地更改;不能切换分支。
我可以在不提交的情况下更改分支吗?如果是,我该如何设置呢?如果不是,我该如何解决这个问题?我想在不提交的情况下忽略较小的更改,只更改分支。
当前回答
将未提交的更改移动到新的分支
我为它创建了一个.gitconfig别名:
[alias]
spcosp = !"git stash push && git checkout \"$@\" && git stash pop --index #"
要更改为new-branch-name,请使用:
git spcosp new-branch-name
任何未提交的文件和索引更改都将被保留。
其他回答
为了你精神上的平静 (为了更容易地访问你做分支切换时未提交的更改)
在切换之前:
git checkout <next_branch>
use
git stash save "brief description of changes"
而不是默认值:
git stash
// or
git stash save
如果你的git隐藏列表是一个较长的列表,这是值得的 必须回到之前的某个想法。
如果您想放弃更改,
git checkout -- <file>
git checkout branch
如果你想保留这些变化,
git stash save
git checkout branch
git stash pop
跟进,
$: git checkout -f
$: git checkout next_branch
遵循以下步骤:
Git stash save将保存所有的更改,即使您在分支之间切换。
Git保存
Git签出任何其他分支,现在因为你保存了你的更改,你可以移动任何分支。上面的命令将确保您的更改被保存。
Git结帐分支
现在,当您回到分支时,使用这个命令取回所有更改。
Git隐藏pop
这些答案都没有帮助我,因为即使在重置和保存之后,我仍然有未跟踪的文件。我必须这么做:
git reset --hard HEAD
git clean -d -f