首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在保持附加到分支的同时恢复到旧的git签出

在保持附加到分支的同时恢复到旧的git签出
EN

Stack Overflow用户
提问于 2014-03-13 21:48:18
回答 2查看 206关注 0票数 2

我通过在生产服务器上运行git pull将应用程序部署到生产服务器。

作为备份的一部分,我正在考虑只存储当前提交散列的想法,而不是复制所有文件。稍后,在恢复期间,我希望将存储库的本地版本从远程源恢复到保存的提交散列。理想情况下,它的行为就像我恢复了整个树一样,包括.git文件夹。

为了保存当前的提交散列,我考虑使用git log -1 --format=%H

为了恢复到特定的版本,我知道git checkout hash命令。不幸的是,此命令将存储库的工作副本从分支中分离出来。

是否有一个或一组命令可以将本地git存储库恢复到以前的状态(也就是以一种透明的方式进行进一步的更新)?因此,git pull会将工作副本更新为相应分支中的最新提交,并更新头指针等。

EN

回答 2

Stack Overflow用户

发布于 2014-03-14 18:31:49

您可以签出任何提交,但这不会将.git目录恢复到它以前的状态,并且“附加到相同的分支”根本没有意义。在git中,分支只是对提交的引用,它启动了一系列提交。你签出的提交有它自己的历史,但签出它会让你处于特殊的“分离头”状态(你不在任何分支的顶端,所以在顶部添加新的提交是没有意义的)。

票数 1
EN

Stack Overflow用户

发布于 2014-03-14 18:25:13

我知道git checkout hash命令。不幸的是,此命令会将存储库的工作副本从分支中分离出来

您可以获取分支并将其指向提交,允许您在问题主题中询问的“分支附件”:

代码语言:javascript
复制
$ git update-ref refs/heads/<branch> <hash>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22380616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档