Git - 从头拉取代码,提交后提交

Git - Pull code from the beginning, commit after commit

我在 GitHub 上分叉了一个项目,并且为了了解它是如何工作的(以后为它做出贡献),我想及时回到最初的提交制作,然后一个接一个地拉取它们,只需在每一步浏览回购协议,并查看与上一次提交的差异。

基本上,我需要知道如何做三件事:

我假设我可以为后者做类似 git diff HEAD~1 的事情。但是,我不知道如何做另外两个,尤其是第一个。

如果你只是想比较 git diff 可以用来查看任何提交之间的差异 git diff sha1 sha2。如果你想让本地回购到一个特定的提交,你所要做的就是 get reset <sha> --hard 并且顶级提交将是你指定的 sha。当你完成后,你可以再次从远程拉取,让你的本地副本与远程主机同步

"pull" 这个词在 Git 中有特殊含义,与你想做的事情无关。 (而且,与你的问题没有任何关系,但我建议根本不要使用 git pull。使用 git fetch 后跟第二个 Git 命令,这就是 git pull 无论如何都适合你。问题是 right 第二个命令可能取决于你用 git fetch 得到的东西,所以 git pull 运行 有时错一个。)

一旦您有权访问存储库——例如原始存储库;没有必要分叉它,也不是说这真的会造成伤害——您应该 git clone 使用任何合适的 Git 客户端将它连接到您的本地计算机。这会在本地为您提供所有内容的完整副本。现在您可以随意浏览它,使用 git checkout 提取任何给定的提交,并使用 git log 查看提交(或 gitk 或一些 GUI 来查看,有时还 git checkout, 那些提交).

任何Git GUI——gitk、GitUp, GitKraken, GitHub Desktop等——应该允许你做你想做的事。 Select 主线分支并滚动回开头。然后,依次选择每个提交将显示该提交与前一个提交的差异。

祝你好运!

and 的答案更贴合您的问题。但是,如果您真的想要,您可以轻松地为每次提交生成 diff's/patches。

如果您确实愿意,可以为每次提交生成补丁。

git format-patch $(git rev-list --max-parents=0 HEAD)..HEAD

这将从第二次提交到最后一次提交创建一个 "patch" 文件。然后您可以单独检查每个提交。