没有玩git,所以这更像是“git支持这样的问题”。
你正在工作......工作......你刚刚做了一个很大的改变,它构建了,你做了一个提交,并立即开始研究下一个重要的功能。对文件进行了一些更改,但不足以进行提交,铃声响起。您希望继续在家工作,但不希望使用部分提交来弄脏历史树。
理想情况下,您可以上传历史记录树,让我们说GitHub和工作树的内容,然后继续在家工作。
git支持这样的东西吗?
我总是可以将整个内容上传到USB并从那里继续,但这会破坏整个想法。
答案 0 :(得分:4)
承诺&推动您的部分更改(最好是在故事分支上),然后将中间提交压缩到最终的提交中,如下所述:http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html
答案 1 :(得分:1)
只需提交您的更改,然后使用以下内容撤消在家中(在您提取之后)的最后一次提交:
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^
答案 2 :(得分:0)
Git是一个分布式版本控制和源代码。
所以,无论什么时候,我们都做了更改,但他们还没有为最终提交做好准备,所以为了避免整个回来并开始工作,切换到新分支n提交你的工作。
git checkout -b <new-branch>
git add .
git commit