Answers:
听起来您所需要的是以下内容:
git stash
git checkout branch123
git stash apply
然后,您应该回到自己的分支上,而不要接触master分支。
stash保存本地修改,然后stash apply将其恢复。
git reset --hard HEAD然后返回到对主分支所做的最后一次提交。
公认的答案是最彻底的,但是在特殊情况下可以简化。如果你在工作目录中修改的文件是在两个相同的master,并branch123可以简单地做
git checkout branch123
无需隐藏任何内容,因为的默认行为checkout是不覆盖工作目录中的已修改文件,因此您不会丢失任何内容。(这实际上是Cascabel首先在评论中提到的)
正如其他人在评论中提到的那样,如果branch123尚不存在,您可以
git checkout -b branch123
根据我在这里找到的内容。
git checkout -b newbranch
master和中不相同branch123。看到我编辑的答案。
git stash 是您所需要的。
完整的解释可以在Git-Tools-Stashing中找到
由于可以创建一个新分支,但无法在检出文件时检出现有分支,因此我发现了以下使用临时分支的技巧:
这种情况至少适用于VS 2015 Git插件,但很可能适用于任何git工具。
编辑:我发现,在执行合并之前,您将必须执行temp分支的rebase(git rebase --onto)。否则,母版中的更改将包含在合并中。上面的额外步骤3.5。在此处查看有关变基的更多信息:https : //git-scm.com/book/en/v2/Git-Branching-Rebasing