如何推送到受保护的仓库

时间:2020-04-06 16:40:40

标签: git github

有一个受保护的“挑战”存储库,它是用于编码挑战的空RoR应用程序模板。 为了解决编码难题,我创建了一个新应用,并在文件夹中添加了一个新的git,并在该存储库中进行了多次提交。

要将我的新应用推送到受挑战保护的存储库,我克隆了该挑战存储库,创建了一个新分支git checkout -b my-solution,将我的整个代码复制粘贴到该文件夹​​和push origin my-solution中。

整个代码确实到达了新分支中的受保护文件夹,但是我丢失了所有提交,这些提交显示了我为解决挑战而采取的每个步骤(可能是因为当我将代码复制粘贴到克隆的挑战文件夹时,正在覆盖.git文件夹)。

在不丢失所有回购历史记录的情况下,还有什么方法可以将我的代码推送到my-solution吗?

1 个答案:

答案 0 :(得分:0)

在不丢失所有回购历史记录的情况下,还有什么方法可以将我的代码推送至解决方案吗?

如果继续复制粘贴代码,则无法实现。这是因为git使用文件的diff,然后将更改存储为提交。复制粘贴文件的解释方式与我们解释文件的方式不同。对于git,它将被解释为新文件的创建,然后将代码写入其中。

如果要保留历史记录,可以尝试使用完整的代码按原样克隆原始存储库。

您还可以将原始存储库作为子模块引入。这将使用git submodule add <repo-url>完成。这可能很有用,因为git现在会将这个存储库视为实际的单独git存储库。您可以使用git submodule update

更新存储库的历史记录

希望对您有所帮助。如果没有,请随时发表评论:)

最好。

PS:如果要避免过多的麻烦或时间不足,则可能要采用第一种方法。