git:在提交到新分支后让工作目录暂存和未暂存

git: get working directory staged and non staged back after committing to new branch

branch b1 上使用暂存文件和未暂存文件时,我创建了一个新分支 (backup-changes) 并提交了 那些文件。

// Create the backup branch from the branch you are on
$ git checkout -b backup-changes

// make sure it is created and you are on the backup branch
$ git branch -a

// check status and add and commit to the backup branch just created 
$ git status
$ git add .
$ git commit

// do a dry run to see things what are things going to be
$ git push -u origin backup-changes --dry-run

// push to remote
$ git push -u origin backup-changes

我不想把它藏起来,因为我想在远程服务器上备份。

现在,我切换回 branch b1,想要恢复所有暂存和未暂存文件,就像它们在我切换到“backup-changes”并提交之前一样?这可能吗?

我无法理解 备份 在 Git 宇宙中的用处。但是有两种可能的方法:

第一种可能性是目标分支中的 git cherry-pick <commit-id> (branch b1)。 仅当您了解 cherry-pick!

的行为时才执行此操作

第二个方法是 git reset 分支 backup-changes 中的 最后一次提交 使用:

git reset --soft HEAD~1

然后用git stash保存重置后的文件:

git stash save "get back all the staged and unstaged files"

现在您可以改回分支:

git checkout b1

然后使隐藏的文件生效:

git stash pop

这将删除 stash,如果你想将 stash 保留在 stash-list 中,只做 git stash apply 并且存储被进一步保存并显示为 git stash list。有关详细信息,请参阅 git stash documentation