如何将本地Git公共仓库上传至私有Gist并保留提交历史
本地Git仓库完整保留提交历史推送到已有私有Gist操作步骤
- 第一步:获取私有Gist的Git仓库地址
打开你已经创建好的私有Gist页面,点击页面右上角的「Clone」按钮,根据自己的使用习惯复制HTTPS或者SSH格式的仓库地址即可。如果使用HTTPS地址推送,后续鉴权需要使用勾选了gist权限的GitHub个人访问令牌;使用SSH地址需要提前在GitHub账号中绑定本地设备的SSH公钥,推送时无需额外输入密码。 - 第二步:在本地仓库添加Gist远程源
打开终端进入本地Git仓库的根目录,执行以下命令添加Gist作为新的远程仓库别名,不要覆盖原有公共仓库的远程配置,避免影响原仓库的正常推送:git remote add gist 你刚才复制的Gist仓库地址
这里的gist是自定义的远程别名,和默认的origin(对应你原来的公共仓库)互不冲突。 - 第三步:推送本地仓库完整内容到Gist
因为新创建的Gist会强制生成一条初始提交(创建时必须填写至少一个文件),和你本地仓库没有共同提交祖先,直接推送会报错,执行带强制参数的推送命令即可覆盖Gist端的初始内容,完整携带本地所有提交历史:git push gist 你本地仓库的主分支名 --force
一般本地主分支名为main或者master,替换成你自己实际的分支名即可。 - 第四步:校验推送结果
推送完成后刷新私有Gist页面,即可看到仓库内的所有文件;点击页面上的「Revisions」选项,就能查看和本地完全一致的完整提交历史。
注意:Gist网页端默认不会渲染展示嵌套目录结构,但所有目录、文件、提交记录都会完整存储在Gist对应的Git仓库中,后续重新克隆该Gist即可完整恢复所有内容和历史。
- 后续推送说明
之后如果需要同步更新内容到Gist,直接执行git push gist 主分支名即可;推送到原公共仓库仍然使用git push origin,两个远程源完全独立互不影响。
内容的提问来源于stack exchange,提问作者Tahlil
相关产品推荐
相关产品推荐

