我正在尝试对一个大项目进行 git 推送到远程服务器。 有没有办法在上传开始后,如果连接丢失,我可以恢复 git Push 命令,而不必重新开始?
编辑:我正在尝试推送到github
edit2:所以看来要采取的方法是增量进行。有人可以举例说明当我的计算机上已有完整存储库时如何执行此操作吗?
谢谢
Hacky 解决方法:推送几个中间提交,这样你每次就不会推送那么多。如果这是一个未能推动的巨大提交,这当然不会拯救你。
# develop, and end up wanting to push master
git branch master-tmp <commit>
git push origin master-tmp:master
git branch -f master-tmp <a more recent commit>
git push origin master-tmp:master
# ...keep going until you've pushed everything you want
有两种主要方法来选择要推送的提交:
master~15
、master~10
、master~5
(master
之前 15、10 和 5 次提交)使用
gitk
手动查找它们;当您在历史记录中选择一个提交时,SHA1 会自动放入中键粘贴剪贴板中。将您的 .git/objects 目录同步到远程,然后执行 git Push - 速度会快得多。
增量 git 推送
r=remote
b=main # branch
n=$(git rev-list --count --first-parent $b) # total number of commits
d=1000 # delta. push $d commits per iteration
for i in $(seq $n -$d 0 | tail -n +2)
do
(set -x; git push $r $b~$i:$b)
done &&
git push $r $b:$b