如何 checkout/switch 到远程分支并在丢弃本地更改的同时创建本地副本?

How to checkout/switch to remote branch and create local copy while discarding local changes?

我想检出一个远程分支,创建一个本地副本并pull/update使用当前的远程分支,同时忽略对当前选择的本地分支(不同的分支)的更改?

我不想将我的更改隐藏到当前的本地分支。我想丢弃它们,在本地拉新分支并结帐。

我试过这个命令,但它一直要求我存储当前分支的本地更改:

sudo git switch -c fix/my_branch origin-http/fix/my_branch

这是我收到的消息:

error: Your local changes to the following files would be overwritten by checkout:
    my_local_file.txt
Please commit your changes or stash them before you switch branches.

您可以使用:

$ git reset --hard

或者隐藏并丢弃你的隐藏更改:

$ git add .
$ git stash
$ git stash clear

另一个答案也有效,但我发现的这个解决方案似乎更简洁:

sudo git switch -cf fix/my_branch origin-http/fix/my_branch

只需在 git 开关中添加 -f 参数