Git: 如何在不接触工作目录的情况下切换分支?
Git: How to switch branches without touching working directory?
我正在处理一个临时分支 foo
。对更改感到满意后,我想将 master
(不是当前的)移动到 foo
的 HEAD。我认为在 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 的更好选择?即不在路径中添加批处理文件或宏...
git switch -C master
这会将 master 移动到当前 HEAD,保留分支具有的任何配置,例如其上游,然后对该分支执行 git checkout
。
我正在处理一个临时分支 foo
。对更改感到满意后,我想将 master
(不是当前的)移动到 foo
的 HEAD。我认为在 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 的更好选择?即不在路径中添加批处理文件或宏...
git switch -C master
这会将 master 移动到当前 HEAD,保留分支具有的任何配置,例如其上游,然后对该分支执行 git checkout
。