免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 26234 | 回复: 10
打印 上一主题 下一主题

[实践] git如何在多个版本间来回切换呢?求git大牛指点 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-12-09 23:24 |只看该作者 |倒序浏览
在svn中,可以获取到指定的版本。
但是使用git,如kernel本地仓库中有多个版本,特别是各个版本都会建立tag。
我想如svn中那样,将工作区切换到某个指定版本,用完后再切换回来,该如何操作呢?

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
2 [报告]
发表于 2012-12-10 09:52 |只看该作者
回复 1# lofeng410
git checkout 就可以吧


   

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
3 [报告]
发表于 2012-12-10 09:59 |只看该作者
回复 2# Godbach
svn和git的命令集基本上相同的。

   

论坛徽章:
0
4 [报告]
发表于 2012-12-11 15:57 |只看该作者
不知道你的多个版本是什么意思,不过一般的做法是一个git版本库中可以有多个分支(这里分支应该可以对应的各个版本吧),在操作时可以用“git checkout 分支名称”,在各个分支间切换就能实现了。不过如果你在一个分支上已经修改而且未保存时注意使用git stash来保存该分支现场再切换到你要操作的下一个分支上。

论坛徽章:
0
5 [报告]
发表于 2012-12-11 18:55 |只看该作者
回复 2# Godbach
关键是没有这个分支啊


   

论坛徽章:
0
6 [报告]
发表于 2012-12-11 18:58 |只看该作者
回复 3# 瀚海书香

感觉还是有点差别的啊
svn中检出命令svn co -r时可以指定版本,但是git中对应的命令git pull/fetch,并不具备这个功能呀。


   

论坛徽章:
0
7 [报告]
发表于 2012-12-11 19:04 |只看该作者
回复 4# gao198732

我想要表达的是这样的:
[lofeng410@localhost kernel]$ git branch
* master
该git库本地只有一个分支,该分支中在重要的提交时打了tag。具体为:
v3.6.1
v3.6.2
v3.6.3
v3.6.4
v3.6.5
v3.6.6
v3.6.7
v3.6.8
v3.6.9

我想要的操作时能在这些tag对应版本间切换,如将当前的工作区切换到v3.6.1,然后操作完成后,再切换到v3.6.5,或者其他版本。

论坛徽章:
0
8 [报告]
发表于 2012-12-11 19:47 |只看该作者
lofeng410 发表于 2012-12-11 19:04
回复 4# gao198732

我想要表达的是这样的:


git一般用分支维护,你 git branch -r 试试?如果有就可以git co了。

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:17
9 [报告]
发表于 2012-12-12 10:36 |只看该作者
git checkout <commit>

这样是个anonymous branch

git checkout <commit > -b  tmp1

这样就建立了一个叫作tmp1的branch

论坛徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵节徽章
日期:2015-03-06 15:50:392015亚冠之大阪钢巴
日期:2015-06-12 16:01:352015年中国系统架构师大会
日期:2015-06-29 16:11:2815-16赛季CBA联赛之四川
日期:2018-12-17 14:10:21
10 [报告]
发表于 2012-12-12 11:14 |只看该作者
楼上的commit也可以是楼主tag里面的那个版本
比如v2.6.10
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP