利用git克隆历史版本(下载指定版本的代码)

 更新时间:2023年05月26日 09:50:07   作者:非为000  
这篇文章主要介绍了利用git克隆历史版本(下载指定版本的代码),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

git克隆历史版本(下载指定版本的代码)

步骤一:首先git clone 当前项目至文件夹

步骤二:cd 进入clone下来的项目文件夹内

步骤三:在git 仓库查看SHA,或输入命令git log 查看提交的历史commit

步骤四:复制需要回退版本到的commit后面序列,命令如下即可回退到指定版本

 git checkout xxxxxxxxxxxxxxx

git版本克隆方法

克隆最新版本

git clone --depth=1 代码库的ssh

克隆历史版本

1、git clone 代码库的ssh

2、cd 克隆的项目名

3、git log(查看历史版本的commit)

4、git checkout 历史版本的commit

迁移git仓库并带有历史提交记录

迁移git仓库

开发在很多时候,会遇到一个问题。GIT仓库的管理,特别是仓库的迁移。我需要保留已有的历史记录,而不是重新开发,重头再来。

我们可以这样做:

使用--mirror模式会把本地的分支都克隆。

// 先用--bare克隆裸仓库
git clone git@gitee.com:xxx/testApp1.git --bare
// 进入testApp1.git,这样就可以把所有分支都克隆到新仓库了
git push --mirror git@gitee.com:xxx/testApp2.git

我们还可以这样做:

git remote add gitlab git@gitee.com:xxx/testApp2.git
git push gitlab
git checkout dev
git push gitlab
...

这样的方法是,把testApp2作为新增的远程仓库,然后使用push一次推送一个分支。这种方式的好处是:迁移的git仓库,只需迁移指定的分支。

迁移git仓库子目录

上面的方法是整个仓库的迁移,但如果只想迁移git仓库的子目录,则可以使用git subtree,比如想要把仓库目录thirdparty\telnetd拆分出去作为一个新的库,并且还要带上她所有的历史提交记录。

首先,我们同样需要新建一个新的空仓库(注意:不要带有任何初始化文件,包括README.md)。

然后,到主仓库执行以下git命令,就可以看到telnetd仓库已有代码了。

git subtree push --prefix=thirdparty/telnetd git@gitee.com:components/telnetd.git master

这样,就完成子目录的迁移啦,就是有个问题,好慢~ 

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Systemd 入门实战教程

    Systemd 入门实战教程

    这篇文章主要介绍了Systemd 入门实战教程,介绍如何使用它完成一些基本的任务,本文结合示例代码给大家讲解的非常详细,需要的朋友可以参考下
    2022-12-12
  • 浅谈Git分支管理策略

    浅谈Git分支管理策略

    这篇文章主要介绍了浅谈Git分支管理策略,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • Jenkins集成Gitlab实现自动化部署的全过程记录

    Jenkins集成Gitlab实现自动化部署的全过程记录

    因为中型公司不可能配置运维开发,而开发只管开发的,所以运维只能是通过使用开源工具的方式来搭建自动化部署系统,下面这篇文章主要给大家介绍了关于Jenkins集成Gitlab实现自动化部署的相关资料,需要的朋友可以参考下
    2022-04-04
  • 基于rsync写脚本实现多节点多服务器文件一键同步的方法

    基于rsync写脚本实现多节点多服务器文件一键同步的方法

    这篇文章主要介绍了利用rsync写脚本实现多节点多服务器文件一键同步,本文将介绍 scp 和 rsync 两个命令及基本语法介绍,需要的朋友可以参考下
    2022-01-01
  • git如何还原到某次commit并强制推送远程

    git如何还原到某次commit并强制推送远程

    这篇文章主要介绍了git如何还原到某次commit并强制推送远程的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • git与svn的区别及优缺点说明

    git与svn的区别及优缺点说明

    Git和SVN都是版本控制系统,用于代码管理,SVN是集中式的,需要联网并且中央服务器存在单点故障的风险,Git是分布式的,每个终端都是一个完整的仓库,不依赖中央服务器,提高了工作的灵活性和安全性,SVN易于管理权限,但必须联网工作且更新提交可能面临冲突
    2024-10-10
  • 解决MAC系统升级后虚拟机黑屏问题

    解决MAC系统升级后虚拟机黑屏问题

    相信大家都抱着尝鲜的心理,更新了MacOS Catalina 。在更新之后,打开VMware Fusion使用中发现,虚拟机处于黑屏状态,无法看到虚拟机的屏幕,在各种尝试之后,找到一种正确的解决办法
    2021-09-09
  • 通过自定义字段重新排序 WordPress 文章方法

    通过自定义字段重新排序 WordPress 文章方法

    在本文中,我将向您展示如何通过自定义字段更改文章的顺序。WordPress 中文章的默认顺序基于发布日期,并按时间倒序显示。这意味着它将在顶部显示最新的文章。
    2021-09-09
  • 微信小程序设置http请求的步骤详解

    微信小程序设置http请求的步骤详解

    这篇文章给大家介绍了微信小程序如何进行http请求的详细步骤,相信对大家学习微信小程序网络请求会有所帮助,有需要的朋友们下面来一起看看吧。
    2016-09-09
  • 自定义 Github Action 库实战详解

    自定义 Github Action 库实战详解

    这篇文章主要为大家介绍了自定义 Github Action 库实战详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09

最新评论