4

我在一个分支上(比如说主人),我的工作目录有一些变化。我得到了工作,但需要大量清理 - 所以我想将我当前的工作目录保存到一个分支,以防万一我需要回到它。我以后肯定会删除分支。

此外,我想在我原来的位置继续研究大师。

现在我做:

# Save to topic branch
git checkout -b working-stuff
git commit -a -m "work in progress"

# go back to master and continue with the state is was in before
git checkout master
git checkout -- .
git reset

稍后,我将删除主题分支。

所以,上面的内容正是我想要的,但它有点冗长。有没有更简单的方法来做到这一点(除了编写脚本之外)?

4

3 回答 3

8

您可以使用

 git stash

从手册

当您想记录工作目录和索引的当前状态,但又想回到干净的工作目录时,请使用 git stash。该命令保存您的本地修改并恢复工作目录以匹配 HEAD 提交。

git stash存储修改后,您可以再次应用它们:

 git stash apply

或者您可以列出您隐藏的修改:

 git stash list
于 2012-12-17T16:08:07.563 回答
4

为了完整起见:如果你想要一个正确的分支(它比存储有一些优势),你不需要使用管道命令,你也可以这样做:

git add -A .
git commit -m "dirty"
git branch dirtybranch
git reset --hard HEAD^
于 2012-12-18T09:35:49.353 回答
2
$ git 添加栏

$ 混帐状态
# 在分支master上
# 要提交的更改:
# (使用“git reset HEAD ...”取消暂存)
#
# 新文件:bar
#

$ git branch newbar $(echo wip | git commit-tree \
  $(git write-tree) -p $(git rev-parse HEAD))

$ git lola --name-status
* e3f88c8 (newbar) wip
| 一间酒吧
* a7b1a76 (HEAD, master) foo
  一个富

仅仅因为你可以并不意味着你应该

于 2012-12-17T16:18:50.557 回答