混帐:交换机分支和忽略不提交任何更改(git: Switch branch and ignore a

2019-06-18 14:48发布

我工作的Git分支,并准备提交我的变化,所以我做了一个有用的提交信息的提交。 我心不在焉,然后作出不值得保留的代码小的改动。 我现在想换枝,但混帐给我,

错误:你有本地修改为“X”; 不能切换分支机构。

我以为我可以改变分支不提交。 如果是这样,我怎么能设置呢? 如果没有,我怎么出这个问题的? 我想忽略不提交上的细微变化,只是变化的分支。

Answer 1:

你需要一个干净的状态更改分支机构。 如果它不影响“脏文件”(作为分支检出只准查尔斯·贝利的言论答记者问)。

否则,你应该:

  • 藏匿您的电流变化或
  • reset --hard HEAD (如果你不介意失去这些微小的变化)或
  • checkout -f (当开关支路,继续即使索引或工作树从HEAD不同。这是用来扔掉的局部变化)。


Answer 2:

如果你想放弃更改,

git checkout -- <file>
git checkout branch

如果你想保留的变化,

git stash save
git checkout branch
git stash pop


Answer 3:

那么,它应该是

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


Answer 4:

跟随,

$: git checkout -f

$: git checkout next_branch


Answer 5:

请注意,如果你已经合并远程分支机构或有本地提交,并希望回到远程HEAD你必须做到:

git reset --hard origin/HEAD

HEAD单独将仅指本地提交/合并-好几次我都忘记了复位时和结束了“你的版本库X承诺未来..”当我预期完全核弹的所有更改/承诺并返回到远程科。



Answer 6:

如果你已经修改了文件的Git还需要切换分支时改变,它不会让你失望。 要放弃工作的变化,使用方法:

git reset --hard HEAD

然后,你就可以切换分支。



Answer 7:

这些答案都不帮我,因为我还甚至复位和存储后有未跟踪文件。 我必须做:

git reset --hard HEAD
git clean -d -f


Answer 8:

切换到一个新的分支输球的变化:

git checkout -b YOUR_NEW_BRANCH_NAME --force

切换到现有的分支丢失的变化:

git checkout YOUR_BRANCH --force


Answer 9:

关闭终端,请删除您的项目是文件夹,然后再克隆项目瞧。



Answer 10:

如果你想保留更改和改变分支在单行命令

git stash && git checkout <branch_name> && git stash pop


Answer 11:

简单的答案:

很给力检出一个分支

git checkout -f <branch_name>

强制检查出一个分支告诉混帐砸你已经在当前分支的所有更改,并签出所需的一个。

或者如果你要签承诺

git checkout -f <commit-hash>


“认为我可以改变分支没有犯。如果是这样,我怎么能设置呢?如果不是,我怎么出这个问题?”

这个问题的答案是 ,那是字面的Git您保留的所有更改轨道理念,每个节点(即提交)必须是先进的,具有最新的您所做的更改,除非您已作出了新的承诺,当然。


你决定继续变化?

然后使用它们藏

git stash

然后unstash在预期的分支,使用您的更改

git stash apply

这将适用于你的变化,但让他们在藏匿排队了。 如果你不想让他们在藏匿栈,然后使用弹出他们

git stash pop

这相当于apply ,然后drop



文章来源: git: Switch branch and ignore any changes without committing