回家时保存工作目录的内容

没有用git玩过很多,所以这更像是一个“git支持类似这样的问题”的问题。

你在工作......工作......你做了一个巨大的改变,它建立起来了,你做了一个承诺,立即开始研究下一个重要功能。 对文件进行了一些更改,但对于提交不够,并且响铃响了。 你想继续在家工作,但不想用部分提交来玷污历史树。

理想情况下,您可以上传历史树让我们说GitHub和工作树的内容,并继续在家工作。

git支持这样的东西吗?

我总是可以把整个东西上传到USB上,然后从那里继续,但是这打破了整个想法。


提交并推送您的部分更改(最好在故事分支上),然后将中间提交压缩为最终的提交,如下所述:http://gitready.com/advanced/2009/02/10/squashing-commits-with- rebase.html


只需提交您的更改,然后撤消在家中(在您拉出之后)的最后一次提交:

git reset HEAD^

但是,你必须做一个强制推送( push -f ),如果有其他人正在这个分支上工作,你将会陷入困境。 有两种解决方案:

  • 承诺不同的分支:

    git checkout -b my-temp-branch
    git commit -am "dirty state"
    git push origin my-temp-branch
    

    然后在家中,检出正确的分支,将其移动到临时分支,恢复上次提交并删除临时分支:

    git checkout **branch**
    git pull origin my-temp-branch
    git reset HEAD^
    git push --delete origin my-temp-branch
    
  • 承诺不同的回购。 如果你不想在你的临时分支中乱扔你的中央仓库,只需在github上创建你自己的仓库(如果我们正在谈论公司代码的话就是私人仓库),把它设置为另一个远程仓库,并按照步骤1进行。

    git remote add private **repo**
    

    这需要做一次,然后当你回家时:

    git commit -am "dirty state"
    git push private **branch**
    

    然后在家中,您只需从您的私人回购中拉出并重置脏提交

    git checkout **branch**
    git pull private **branch**
    git reset HEAD^
    

  • Git是一个分布式版本控制和源代码。

    所以,每当我们做了改变,但他们还没有准备好进行最终提交,所以为了避免整个回来并开始工作,切换到新的分支n提交您的工作。

    git checkout -b <new-branch>
    git add .
    git commit 
    

    选中此项:将现有的,未完成的工作移至Git中的新分支

    链接地址: http://www.djcxy.com/p/23595.html

    上一篇: Saving contents of a working directory when going home

    下一篇: Git : Move staged changes to different or new branch