git:如何创建我当前工作的一个分支,但保留在我的原始分支上

时间:2012-12-17 16:04:26

标签: git save branch

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

此外,我想继续在主人身上继续工作。

现在我做:

# 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

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

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

3 个答案:

答案 0 :(得分:7)

您可以使用

 git stash

来自手册

  

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

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

 git stash apply

或者您可以使用以下命令列出您的隐藏修改:

 git stash list

答案 1 :(得分:3)

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

git add -A .
git commit -m "dirty"
git branch dirtybranch
git reset --hard HEAD^

答案 2 :(得分:2)

$ git add bar

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD ..." to unstage)
#
#       new file:   bar
#

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

$ git lola --name-status
* e3f88c8 (newbar) wip
| A     bar
* a7b1a76 (HEAD, master) foo
  A     foo

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