没有玩过 git,所以这更像是一个“git 是否支持这样的东西”的问题。
你在工作……工作……你刚刚做了一个很大的改变,它构建了,你做了一个提交,然后立即开始着手下一个大特性。对文件进行了一些更改,但不足以提交,并且铃声响了。您想继续在家工作,但又不想通过部分提交弄脏历史树。
理想情况下,您可以将历史树上传到 GitHub 和工作树的内容,然后继续在家工作。
git 支持这样的东西吗?
我总是可以将整个内容上传到 USB 并从那里继续,但这破坏了整个想法。
没有玩过 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
然后在家里,检查正确的分支,将其移动到 temp 分支,还原最后一次提交并删除 temp 分支:
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 是一个分布式版本控制和源代码。
因此,无论何时,我们都会进行更改,但它们还没有准备好进行最终提交,因此为了避免整个返回并开始工作,请切换到新分支并提交您的工作。
git checkout -b <new-branch>
git add .
git commit