我在一个分支上(让我们说主人),我的工作目录有一些变化。我得到的东西工作,但需要大量的清理 - 所以我想将我当前工作的目录保存到分支机构,以防万一我需要回到它。我肯定会在以后删除该分支。
此外,我想继续在主人身上继续工作。
现在我做:
# 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
稍后,我将删除主题分支。
所以,上面的确是我想要的,但它有点冗长。有没有更简单的方法来做到这一点(除了编写脚本)?
答案 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
仅仅因为你可以并不意味着你 。