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

时间:2012-12-06 07:14:44

标签: git

没有玩git,所以这更像是“git支持这样的问题”。

你正在工作......工作......你刚刚做了一个很大的改变,它构建了,你做了一个提交,并立即开始研究下一个重要的功能。对文件进行了一些更改,但不足以进行提交,铃声响起。您希望继续在家工作,但不希望使用部分提交来弄脏历史树。

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

git支持这样的东西吗?

我总是可以将整个内容上传到USB并从那里继续,但这会破坏整个想法。

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

只需提交您的更改,然后使用以下内容撤消在家中(在您提取之后)的最后一次提交:

git reset HEAD^

但是你必须强制推送(push -f),如果其他人在这个分支上工作你就会遇到麻烦。有两种解决方案:

  1. 提交另一个分支:

    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
    
  2. 提交不同的回购。如果你不想和你的临时分支一起乱丢你的中央仓库,只需在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^
    

答案 2 :(得分:0)

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

所以,无论什么时候,我们都做了更改,但他们还没有为最终提交做好准备,所以为了避免整个回来并开始工作,切换到新分支n提交你的工作。

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

选中此项:Move existing, uncommited work to a new branch in Git