Git:如何在不接触工作目录的情况下切换分支?

Git:如何在不接触工作目录的情况下切换分支?,git,branch,git-branch,git-checkout,Git,Branch,Git Branch,Git Checkout,我在一家临时分支机构工作。对更改感到满意后,我想将master(不是当前的)移动到foo的头部。我认为在Git上这样做的常见方式是: git checkout master git reset --hard foo 问题是,当我执行git checkout master时,git会修改工作目录中的文件,我的IDE会变得疯狂。我得把它关上再打开 我的第一个解决方法是: git branch -D master && git checkout -b master 但是它使我失去了

我在一家临时分支机构工作。对更改感到满意后,我想将
master
(不是当前的)移动到
foo
的头部。我认为在Git上这样做的常见方式是:

git checkout master
git reset --hard foo
问题是,当我执行git checkout master时,git会修改工作目录中的文件,我的IDE会变得疯狂。我得把它关上再打开

我的第一个解决方法是:

git branch -D master && git checkout -b master
但是它使我失去了
master
的上游设置。以下事实上是有效的:

git branch -D master && git checkout -b master && git push --set-upstream origin master
但是命令太大了

是否有更好的选择只使用Git?i、 e.不在路径中添加批处理文件或宏

git switch -C master

这将把master移动到当前头部,保留分支的任何配置,例如其上游,然后对该分支执行
git签出。

!更新分支后,我仍然需要运行
git checkout
。但是我想这比删除并重新创建分支要好。或者,对于那些没有
git开关的人来说,
git checkout-B master