Git - 从开始提取代码,提交后提交

时间:2017-03-23 23:44:00

标签: git pull

我已经在GitHub上分配了一个项目,为了理解它是如何工作的(后来对它有所贡献),我想及时回到第一次提交,然后将它们拉出来一个接一个,只需在每一步浏览回购,以及看到前一次提交的差异。

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

  • 回到repo的初始状态
  • 拉一次提交(我不需要编辑代码,只需查看它)
  • 查看此提交与前一个提交之间的差异

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

4 个答案:

答案 0 :(得分:2)

如果你只想差异git diff,可以用来查看任何提交git diff sha1 sha2之间的差异。如果要将本地repo获取到特定提交,则只需要get reset <sha> --hard,并且最高提交将是您指定的sha。完成后,您可以再次从遥控器拉出以使本地副本与远程主控制器同步

答案 1 :(得分:2)

&#34; pull&#34;在Git中有一个特殊的含义,与你想做的事情无关。 (并且,与您的问题没有任何关系,但我建议您不要使用git pull。使用git fetch后跟第二个Git命令,这就是git pull为您所做的一切无论如何。问题是第二个命令可能取决于git fetch的内容,因此git pull有时会运行错误的。)

一旦您有权访问存储库 - 例如原始存储库;没有必要分叉,不是这真的很痛 - 你应该git clone使用任何合适的Git客户端git checkout到你的本地机器。这为您提供了本地所有内容的完整副本。现在,您可以随意浏览它,使用git log提取任何给定的提交,gitk查看提交(或git checkout或某些GUI查看,有时也{{1}那些提交)。

答案 2 :(得分:2)

任何Git GUI - gitk,GitUpGitKrakenGitHub Desktop等 - 应该可以让您做自己想做的事情。选择主线分支并向后滚动到开头。然后,依次选择每个提交将显示该提交与前一个提交的差异。

祝你好运!

答案 3 :(得分:1)

torekJamie的答案更适合您的问题。但是,如果你真的想要,你可以轻松地为每次提交生成差异/补丁。

如果您真的想要,可以为每次提交生成补丁。

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

这将创建一个&#34;补丁&#34;从第二次提交到最后一次提交的文件。然后,您可以单独检查每个提交。