多设备开发:如何不提交Commit就推送代码到Remote Branch?
无需正式Commit同步未完成代码到远程分支的方法
首先纠正你的观点:未完成的代码完全可以提交,只要用明确的标记(比如WIP: 某某功能开发中,WIP是Work In Progress的缩写),这类"草稿"commit后续可以通过变基(rebase)合并或修改成正式提交,不会污染最终的提交历史。但如果你确实不想生成任何commit记录,下面是两种可行方案:
方法一:用Git stash推送到远程暂存
Git的stash功能支持将本地未提交的改动推送到远程仓库的暂存空间:
- 把当前未提交的改动存到本地stash:
git stash push -m "WIP: 台式机上未完成的XX功能" - 将本地stash推送到远程:
git stash push --remote origin - 在另一台设备拉取远程stash:
git stash pull origin - 恢复stash里的改动:
git stash apply
注意:远程stash是共享空间,适合个人多设备同步,多人协作时要注意避免冲突。
方法二:创建临时分支提交草稿(推荐)
这种方式最稳妥,且后续可以完全清理草稿记录:
- 创建临时分支:
git checkout -b feature-xx-wip - 提交未完成代码,用清晰的草稿信息:
git add . && git commit -m "WIP: 未完成的XX功能,暂存同步用" - 推送到远程临时分支:
git push origin feature-xx-wip - 在另一台设备拉取分支:
git fetch origin && git checkout feature-xx-wip - 功能完成后清理:
- 切换到主分支:
git checkout main - 变基合并(保持提交历史整洁):
git rebase feature-xx-wip - 删除本地临时分支:
git branch -d feature-xx-wip - 删除远程临时分支:
git push origin --delete feature-xx-wip
- 切换到主分支:
这种方法的优势是改动有明确的分支管理,不会丢失,还能通过变基把多个草稿commit合并成一个正式提交,完全不影响主分支的提交历史。
内容的提问来源于stack exchange,提问作者Michael Braley
相关产品推荐
相关产品推荐

