移动到另一个分支并“保存”当前更改

Jam*_*son 5 git github

这是场景:我在分支 A 上工作,但是有一些迫切需要修复的事情,我如何创建一个新分支(说它是分支 B)而不带来当前的更改?

我不想签出分支 A 中的所有文件,因为如果分支 B 中的工作完成,我希望能够继续。

我不想推送分支 A 因为它未完成。

Sam*_*iel 5

选项 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