我克隆了某个项目的git存储库。我可以将文件转到初始状态吗?当我查看文件时,可以转到修订版2、3、4。。。最近?我想了解一下项目的发展情况。
当前回答
要获得特定的提交代码,您需要该提交的哈希代码。您可以通过两种方式获取哈希代码:
从您的github/gitlab/bitbucket帐户获取。(它位于提交url上,即:github.com/user/my_project/commit/commit_hash_code),或者您可以git日志并检查您最近在该分支上的提交。它将显示提交的哈希代码和提交代码时留下的消息。只需复制并执行git checkout commit_hash_code
移动到该代码后,如果您想处理它并进行更改,则应使用git checkout-b<new branch name>进行另一个分支,否则,更改将不会被保留。
其他回答
要获得特定的提交代码,您需要该提交的哈希代码。您可以通过两种方式获取哈希代码:
从您的github/gitlab/bitbucket帐户获取。(它位于提交url上,即:github.com/user/my_project/commit/commit_hash_code),或者您可以git日志并检查您最近在该分支上的提交。它将显示提交的哈希代码和提交代码时留下的消息。只需复制并执行git checkout commit_hash_code
移动到该代码后,如果您想处理它并进行更改,则应使用git checkout-b<new branch name>进行另一个分支,否则,更改将不会被保留。
我遇到的情况是,我们有一个主分支,然后有一个名为17.0的分支,在这个17.0中有一个提交散列,不说“XYZ”。客户将获得XYZ版本之前的版本。现在我们遇到了一个bug,需要为该客户解决。因此,我们需要为该客户创建单独的分支,直到“xyz”散列。我是这样做的。
首先,我在本地计算机上创建了一个具有该客户名称的文件夹。客户名称为“AAA”创建该文件夹后,在此文件夹中发出以下命令:
初始化gitclone执行此命令后,您将进入主分支。所以切换到所需的分支git checkout 17.0这将把您带到提交的分支机构git checkout这将占用您的存储库直到哈希提交。查看我们的分支的名称,它被更改为提交哈希编号。现在给这个哈希指定一个分支名称gitbranch ABC这将在本地计算机上创建一个新分支。数字结账ABCgitpushorigin ABC这将把这个分支推送到远程存储库,并在git服务器上创建一个分支。你完了。
要转到特定版本/提交,请运行以下命令。可以从git-log中获得的HASH-CODE--oneline-n10
git reset --hard HASH-CODE
注意-在重置为特定版本/提交后,如果您想恢复所有放弃的提交,可以运行git pull--rebase。
使用提交的SHA1密钥,可以执行以下操作:
首先,找到要提交的特定文件:git-log-n<#commits><文件名>这将根据您的<#commits>生成特定文件的提交列表。提示:如果您不确定要查找的提交内容,一个很好的方法是使用以下命令:gitdiff<commit-SHA1>。。HEAD<文件名>。此命令将显示特定文件的当前提交版本与先前提交版本之间的差异。注意:提交的SHA1密钥在gitlog-n的列表中的格式为:
提交<SHA1 id>
第二,签出所需版本:如果找到了所需的提交/版本,只需使用命令:gitcheckout<desired-SHA1><file name>这将在临时区域中放置您指定的文件版本。要将其移出暂存区,只需使用命令:resetHEAD<filename>
要恢复到远程存储库所指向的位置,只需使用命令:gitcheckout HEAD<file name>
一种方法是创建所有对补丁的提交。检查初始提交,然后在阅读后按顺序应用补丁。
使用git格式补丁<初始修订版>,然后使用git签出<初始修订版本>。你应该在你的导演中得到一堆文件,以四位数字开始,这是补丁。
当您阅读完修订后,只需执行gitapply<filename>,它应该如下所示git应用0001-*和count。
但我真的很奇怪,为什么你不只是想阅读补丁本身?请在你的评论中发表这一点,因为我很好奇。
git手册还告诉我:
gitshow next~10:文档/README显示文件Documentation/README的内容,因为它们在下一个分支的第10次最后提交中是最新的。
您还可以查看git责备文件名,它为您提供了一个列表,其中每一行都与提交哈希+作者相关联。
推荐文章
- 如何将git配置存储为存储库的一部分?
- 如何修改GitHub拉请求?
- 如何在Github和本地删除最后n次提交?
- 我如何调试git/git-shell相关的问题?
- 错误:无法使用rebase进行拉取:您有未分阶段的更改
- Git隐藏未缓存:如何把所有未分期的变化?
- 真实的恶魔
- 如何从另一个分支获得更改
- Git:权限被拒绝(publickey)致命-无法从远程存储库读取。克隆Git存储库时
- git reflog和log有什么区别?
- git推挂在Total line之后
- 重命名git子模块
- 结合Git存储库的前两次提交?
- Xcode 6 gitignore文件应该包括什么?
- 我如何从现有回购的分支创建一个新的GitHub回购?