Git:开始时间旅行再回来

时间:2015-09-11 11:58:40

标签: git version-control

作为git的一个相对新手,有一些我从未完成过的工作 - 如何在分支的时间轴中轻松快退和快进到不同的点。

今天,我需要编写一份报告,其中包括在git修订历史记录开始时从代码库中截取屏幕截图,并将其与程序现在的外观进行比较。在git中最简单的方法是什么?

3 个答案:

答案 0 :(得分:2)

根据我的理解,您希望创建一个将initial提交转换为final提交的补丁。

我们假设你有一个git log输出:

* 58ef3f6 [maven-release-plugin] prepare for next development iteration
* 15ded94 [maven-release-plugin] prepare release 1.7
* 1687ba4 fix some more bugs
* 1687ba4 fix some bugs
* a4f3918 implement new feature
* c2065d1 update datasources
* 06349b5 set up external interfaces
* 723e37f branched from trunk

然后,要创建723e37f58ef3f6之间的更改的累积修补程序,请执行以下操作:

git diff 58ef3f6 723e37f 

另一方面,如果你想看看代码在特定时间点的样子,你只需要检查特定的提交,例如:

git checkout 58ef3f6 

答案 1 :(得分:2)

如果您的报告涉及演示文稿,我会强烈推荐在您的代码库上运行“gource”(令人印象深刻的眼睛糖果!)。

这个工具让您真实地可视化您的提交图表随时间的变化。

查看“History of Python”来源代表。

答案 2 :(得分:1)

  

..如何轻松快退并快进到分支机构时间轴中​​的不同点。

     

今天,我需要编写一份报告,其中包括在git修订历史记录开始时从代码库中截取屏幕截图,并将其与程序现在的外观进行比较。在git中最简单的方法是什么?

使用git回顾过去非常容易。假设您的历史记录如下

hash  : commit message
======================
3q4htq: fixed bug that the new feature introduced
364572: added a new feature
44tdrt: made some more stuff
235326: made some stuff for the first time
224y4y: Initial commit

(提交哈希值)

假设您想要回到提交235326时项目所处的状态。您需要做的就是

$ git checkout 235326

您现在可以查看文件并制作代码的屏幕截图。当你准备好回到未来"你可以简单地做到

$ git checkout master

或用您最初来自的分支名称或提交哈希替换master。你可以使用像这样的结账命令来跳转'在项目历史中。