我在两台不同的计算机上处理同一个项目,桌面和笔记本电脑。有时我需要在某个任务/功能的中间进行转换。
所以我想在笔记本电脑上提交,然后将其传输(推/拉)到桌面并继续。然后,当该功能完成时,我想进行一次新的提交,然后用半完成提交来压缩它。
如何在不混淆历史记录的情况下将其拉回/推回笔记本电脑?
处理此问题的正确方法是什么?执行此操作后,我还必须能够发布提交。目前我正在直接处理主分支,但如果在一个单独的分支上工作有助于我这样做。
我确实知道如何使用git rebase -i,并且在没有问题的情况下仍然在同一台计算机上使用过几次,所以你的答案不必包含git rebase / squash的细节。
答案 0 :(得分:2)
我一直这样做并使用以下工作流程,当我不坐在任何给定的计算机上时,使用github作为授权主存储库:
当我离开电脑时,我总是做
git push -f
当我到达计算机时,我做了
git fetch -v
git reset --hard origin/master # Assuming branchname is master
只要我一直都这样做,我知道我的最新作品总是在github上,而且我会根据我想要的所有内容
我一般也设置
git config --global push.default current
只推送我已经签出的分支,我发现在使用大量强制推送时几乎是强制性的。