我克隆了某个项目的git存储库。 我可以将文件转换为初始状态吗?当我查看文件时,请转到修订版2,3,4 ...最近? 我想概述项目是如何发展的。
#1楼
使用commit的SHA1密钥,您可以执行以下操作:
首先,找到特定文件的提交:
git log -n <# commits> <file-name>
这基于您的
<# commits>
,将生成特定文件的提交列表。提示:如果您不确定要查找的提交,请查找以下命令的好方法是:
git diff <commit-SHA1>..HEAD <file-name>
。 此命令将显示当前版本的提交与特定文件的先前版本的提交之间的差异。注意:提交的SHA1密钥在
git log -n
的列表中格式化为:
commit
<SHA1 id>
其次,签出所需的版本:
如果找到了所需的提交/版本,只需使用以下命令:
git checkout <desired-SHA1> <file-name>
这将把您指定的文件版本放在暂存区域中。 要将其从暂存区域中取出,只需使用以下命令:
reset HEAD <file-name>
要恢复到远程存储库所指向的位置,只需使用以下命令: git checkout HEAD <file-name>
#2楼
要转到特定版本/提交,请执行以下命令。 你可以从git log --oneline -n 10
获得HASH-CODE
git reset --hard HASH-CODE
注 - 重置为特定版本/提交后,如果要恢复所有丢弃的提交,可以运行git pull --rebase
。
#3楼
我处于这样一种情况:我们有一个主分支,然后另一个分支叫做17.0,在这个17.0里面有一个提交哈希没有说“XYZ” 。 并且客户在XYZ修订版之前获得构建。 现在我们遇到了一个错误,需要为该客户解决。 所以我们需要为该客户创建单独的分支,直到“xyz”哈希。 所以我就是这样做的。
首先,我在本地计算机上创建了一个具有该客户名称的文件夹。 一旦创建该文件夹,请说客户名为“AAA”,在此文件夹中发出以下命令:
- git init
- git clone在此命令之后,您将在master分支上。 所以切换到所需的分支
- git checkout 17.0这将带您到您的提交所在的分支
- git checkout这会将您的存储库带到该哈希提交之前。 查看更改为提交哈希号的ur分支的名称。 现在给这个哈希分支名称
- git branch ABC这将在本地计算机上创建一个新分支。
- git checkout ABC
- git push origin ABC这将把这个分支推送到远程存储库并在git服务器上创建一个分支。 你完成了。
#4楼
使用git checkout <sha1>
特定的提交。
#5楼
您可以使用gitk
工具获取项目历史的图形视图。 赶紧跑:
gitk --all
如果要签出特定分支:
git checkout <branch name>
对于特定提交,请使用SHA1哈希而不是分支名称。 (请参阅Git社区手册中的Treeishes ,这是一个很好的阅读,以查看导航树的其他选项。)
git log
有一整套选项来显示详细历史记录或摘要历史记录。
我不知道在提交历史中前进的简单方法。 具有线性历史的项目可能并不常见。 像SVN或CVS一样的“修订版”的想法并没有在Git中很好地映射。
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3159794