git stash/git stash pop 是否可以用于意外分支切换?

Is git stash/git stash pop okay for accidental branch switch?

git stashgit stash pop 是解决此问题的好方法吗?

我在分支 B 工作,但意外发生了一些我不知道的事情,让我回到了一个较旧的分支,分支 A,在那里我一直盲目地从事各种任务。

Git 要我将新工作提交到分支 A,然后才能切换到分支 B,但我不能(不应该)那样做。

在分支 A(错误的分支)上执行 git stash 是否安全(意味着我不会丢失所有工作,但能够将其放入正确的分支)切换到分支 B(正确的分支)并执行 git stash pop?这样做会不会有什么灾难?我的所有工作是否会立即在正确的分支中并且我可以正常提交和推送?

我正在打瞌睡,不确定如何才能不破坏我的 Git 项目。

我想

This post 回答了我的问题,但它是最新的吗?另外,从 post:

To also stash currently untracked (newly added) files, add the argument -u

未提交和 untracked/newly 添加的文件有什么区别?未提交的文件是不是多了还是少了"newly added"?

这正是存储的用例之一。如果修改后的文件在两个分支之间没有差异,您将能够在不存储的情况下切换分支。但是 Git 看到您的分支开关会覆盖您的一些更改,如果您不强制它,它会拒绝这样做。

所以是的,你存储,切换分支,然后弹出存储。然后,您可能会遇到可以解决的合并冲突,如果您正确地执行了此操作,您就可以恢复所有工作并可以测试并提交到正确的分支。

如果您在本地创建了新文件,并且在您切换到的分支中添加了相同的文件,您还会遇到切换会覆盖您的本地文件的问题。为此,还可以存储未跟踪的文件。

该术语中未跟踪文件和未提交文件的区别在于,Git 根本不知道未跟踪文件,而未提交文件是 Git 已经跟踪但您对其进行了更改的文件.未跟踪的文件当然也未提交。