git-stash 与 git-branch

标签 git

previous Git question 中, Daniel Benamy 在谈论 Git 中的工作流程:

I was working on master and committed some stuff and then decided I wanted to put that work on hold. I backed up a few commits and then branched from before I started my crap work.

他想在不丢失当前更改的情况下,将他的工作状态恢复到之前的某个时间点。所有的答案都以各种方式围绕着类似

git branch -m master crap_work
git branch -m previous_master master

这与 git stash 相比如何?当 似乎git stash 所做的一切都已经通过分支处理时,我有点困惑试图看看这里有什么不同的用例......


@ Jordi Bunster : 谢谢,解决了。我想我会把“stashing”看作是一个轻量级的、无名的分支。所以 stash 可以做的任何事情,branch 也可以,但需要更多的单词。不错!

最佳答案

'stash' 获取工作副本中未提交的“”内容,并将其 stash 起来,为您留下一个干净的工作副本。

它根本没有真正的分支。然后,您可以将存储应用到任何其他分支之上。或者,从 Git 1.6 开始,您可以:

git stash branch <branchname> [<stash>]

在一个新分支上应用存储,所有这些都在一个命令中。

因此,如果您还没有提交到“错误”分支,那么 stash 非常有用。

如果您已经 promise ,那么您在问题中描述的工作流程是更好的选择。顺便说一下,你是对的:Git 非常灵活,并且随着这种灵 active 而来的是重叠的功能。

关于git-stash 与 git-branch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39651/

相关文章:

git - 使用 go 语言与 gitolite

git - 获取两次提交之间所有标签的列表

git - Azure 分支 PR 策略 - 要求源分支是最新的

node.js - 如何列出提交中更改的文件的路径?

javascript - Angular、GitHub API、返回存储库和标签

git - 我怎样才能只应用一些 git stash?

git - 将一个分支折叠为一个提交

git - 如何在谷歌计算引擎中安装 git?

git - 有没有一种方法可以让VS Code在开发容器中使git正常工作?

git - 在 Gitea 中更改管理员密码