如何让GitHub的历史记录显示我从其他人那里克隆的代码的历史记录



我正在处理一个分叉的项目,并使用gRPC实现了分布式数据库。然而,我团队中的一名研究生重写了该系统的一个更清洁的工作版本。所以我只是将她的更改克隆并复制到我的本地目录中,然后推送到我的repo中。然后,当我查看历史记录时,我发现它并没有显示她有犯罪史。我想知道是否有办法把她的工作历史也包括在我的回购中,因为她写了代码,我正在使用它。我确实在自述中给出了归属。

是的,复制文件将不会保留其Git历史记录。您只能获得文件的内容。

最简单的方法是让他们将她的更改合并到存储库的主分支中,然后提取这些更改。例如,如果你们都分叉了一个项目,他们应该发出一个pull请求并获得批准。一旦她的作品在你从(即"原点"(分叉的存储库中,你就会正常更新你的分叉。这样可以确保工作得到审查、测试和批准。

如果这不可能,下面是你如何去中心化的方式。


首先,从她的存储库中获取她的更改。

链接到她的存储库作为";"远程";。她的存储库必须可以通过URL访问,也就是你用来克隆它的URL。如果不能,你可以把它放在U盘上,然后使用目录路径。我们需要给它一个名字,我会叫它";grad";。

git remote add grad <url or directory to their repo>

然后取他们的零钱。这不会修改你的任何作品,它会获取它们的分支,并在它们前面加上grad/。他们的硕士变成了研究生/硕士等等

git fetch grad

假设她的分支是distributed_db,她的工作将在grad/distributed_db。在这一点上,你有他们的工作和历史。如果你不打算改变它,你就完了。您可以像引用任何其他分支一样引用grad/distributed_db。


如果确实要进行更改,请使用git branch distributed_db grad/distributed_db创建本地分支。Git将创建一个本地分支distributed_db,并将其设置为跟踪grad/distributed_db;CCD_ 2和CCD_ 3将自动使用grad/distributed_db作为其远程分支。

你如何处理自己的变化取决于你自己。你可以尝试合并它们,但由于你在项目的同一部分独立工作,这可能会导致许多冲突。或者,如果你有一些想要添加的特定提交,你可以把它们提取出来,放在她使用git cherry-pick的工作之上。

如果你想挑选一些小的更改,但没有进行小的、集中的提交,从而限制了它们的更改。。。好吧,现在您知道了进行小型的、有重点的提交,从而限制它们的更改。有一些工具可以帮助从大型提交中提取特定的更改,但这是另一个问题。

最新更新