我使用了一个非常不可靠的连接,当我尝试进行提交时,所以没有一个超过20mb和/或一旦它们达到这样的大小就推动它们,有时它是不可能的(一些资产可能很大 - 我知道使用git作为资产也不是最好的主意)并且在发送所有内容之前我的连接有90%的可能性会失败。
是否可以逐个推送提交,或者您是否可以建议对此案例有用的任何其他提示?
答案 0 :(得分:4)
是的,这不仅是可能的,而且实际上是非常微不足道的。而不是:
git push remote branch
跑步:
git push remote <commit-hash>:branch
每次提交尝试推送一次,在适当的(最父到最多的)订单。
要自动执行此操作,假设您的遥控器名为origin
且您的分支名为branch
且您的origin/branch
远程跟踪分支是最新的(运行git fetch origin
如果不):
for rev in $(git rev-list --reverse origin/branch..branch); do
git push origin $rev:branch;
done
这实际上是一个单行分为三行,用于StackOverflow发布目的。 (注意:这也假设一个或多或少的线性历史记录;如果没有,则添加--topo-order
以保证事情,但是您需要--force
并且这里发生了各种不好的想法,因此&# 39;不是要走的路:您可能希望将推送拆分为使用临时分支,或者在合并点聚合它们。)