我的机器上有一个本地存储库,大约有 500 次提交。我需要将它传输到全局存储库,例如 Github,但是所有这些提交也都保存在那里(不仅仅是最新的)。我想写一个只会推送 500 次的脚本,但我认为可能有一些更简单的方法。
PS 第一个分支中的所有重要提交
我的机器上有一个本地存储库,大约有 500 次提交。我需要将它传输到全局存储库,例如 Github,但是所有这些提交也都保存在那里(不仅仅是最新的)。我想写一个只会推送 500 次的脚本,但我认为可能有一些更简单的方法。
PS 第一个分支中的所有重要提交
git
push程序命令的执行首先要同意更新的指针(“分支”)在您和服务器上指的是哪个提交。如果它是相同的提交,则命令退出并显示一条消息:“一切都是最新的”
如果“服务器”提交不在您的本地存储库中(或者不是您本地提交的“祖先”),则该命令将失败并显示错误“无法推送某些参考...”
如果“服务器”提交在您的本地存储库中,并且它是您本地提交的“祖先”,那么所有丢失的(在服务器上)中间提交将被发送到服务器。这种情况的一个特殊情况是服务器上有一个空存储。然后将推送将您的本地提交链接到原始提交(包括)的所有提交。
因此,无论您的本地提交历史记录“更长”多少次提交,所有丢失的提交都将使用单个命令发送到服务器
push。ps 为简单起见,我省略了与 commit 类型的对象本身一起发送它们中提到的所有其他类型的所有对象(以及这些对象中提到的所有其他对象,递归地)。