这是场景:我在分支 A 上工作,但是有一些迫切需要修复的事情,我如何创建一个新分支(说它是分支 B)而不带来当前的更改?
我不想签出分支 A 中的所有文件,因为如果分支 B 中的工作完成,我希望能够继续。
我不想推送分支 A 因为它未完成。
选项 1:您可以隐藏更改
如果您在分支 A 中有更改:在分支 A 中时,请执行
git stash save "hint_to_what_stash_contains"
Run Code Online (Sandbox Code Playgroud)
要检索更改,
git stash apply
Run Code Online (Sandbox Code Playgroud)
如果您有多个 stash,您可以列出它们并选择要应用的 stash。
git stash list
git stash apply stash@\{<STASH_NUMBER>\}
Run Code Online (Sandbox Code Playgroud)
选项 2:提交更改。
首先,提交您在 branchA 中的所有更改但不将其推送到原点,然后创建您的分支 b 来完成您的工作。一旦分支 B 完成,您可以检出分支 A 以恢复工作。
恢复分支A的工作
git checkout brancha
edit files
git add <file(s)>
git commit --amend # You can also change the commit message if you want.
Run Code Online (Sandbox Code Playgroud)
选项 3:我不推荐,是补丁的东西.. 我看到有人使用它。做一个 git diff 并将其保存在一个文件中,例如“branch_a_changes.patch”,当你想恢复你的工作时,只需执行 git apply branch_a_changes.patch