文章目录
- 1.前言
- 2.解决方案
- 3.操作步骤
- 3.1.软件安装
- 3.2.在U盘创建裸仓库
- 3.3.创建Qt程序并将代码上传至U盘
- 3.4.版本标记及切换
- 3.4.在别的电脑上clone代码出来
- 4.其他
- 5.结语
1.前言
我们在开发项目时,随着项目需求的增加以及bug的修复,肯定会涉及到版本管理的问题。
由于git的使用具有一定的门槛,之前我都没怎么用。基本没有怎么进行版本管理,而是周期地(比如每天)把代码压缩打包备份一下,然后将他们放到网盘中,如下图所示:
但是这样没办法迅速、明确地知道自己两个不同的备份之间有那些不同,尤其是想回退到某个特定的版本时,简直就是噩梦。
而git就能很好地进行版本管理。
说到git,肯定就有人想到github了。但是有一些代码是不方便外传的;又或者出于谨慎,只想把代码备份到U盘的;由于种种原因就不想上传到github。
这里提供一个把自己的U盘当github来用的办法。
2.解决方案
其实解决办法很简单:裸仓库。
创建好这个裸仓库之后,这个裸仓库就是你的代码服务器了。
3.操作步骤
3.1.软件安装
为了方便使用,最好先安装两个软件:
git,这个是基础软件,必须安装的。【Git --distributed-even-if-your-workflow-isnt】
GitHub Desktop,这个是方便可视化地使用git功能,不用手动输命令的。【Experience Git without the struggle】
3.2.在U盘创建裸仓库
我现在有个U盘YongSton。我在U盘下新建了个路径:H:\git\MyProject.git。这个文件夹的.git并不是强制要求,只不过大家都是这样搞,那我们也随大流。
在这个文件夹下右键,点击Open Git Bash here,打开git控制台。
然后在git控制台中执行
git init --bare
至此,最难的已经完成了。
3.3.创建Qt程序并将代码上传至U盘
使用QtCreator创建一个工程,路径可以放在任意位置,我这里放在C:\Users\Administrator\Desktop\QtPrj\MyProject
然后点击Tools–》Git–》Create Repository,为本工程创建一个本地仓库。
路径就让它选择默认的(本工程根目录下)就行
创建好之后,在工程名那里会显示当前分支名。
先配置一下我们的远程主机(U盘)
在弹窗中点击add,然后添加origin,路径选我们前面U盘中的那个裸仓库
然后我们执行一下commit
填好信息,勾选Select all,然后点击Commit
这时候,更新还没传到U盘。还得执行Push
没事,点Yes
可以看到,成功上传了。
3.4.版本标记及切换
这个时候,我们再用Github Desktop 打开我们的这个Qt工程所在文件夹的仓库。
选择我们的工程目录
可以看到,commit的记录已经存在了
我们把这次commit打个tag,V0.0.1
创建好tag之后,需要点击一下Push origin。然后就把tag显示出来了。
然后我们回到QtCreator,做一些修改。然后再提交一次commit,并创建一个tag:V0.0.2
这样,我们就有了两个版本了。
假如我们想看看V1版本的代码,该如何操作呢?
在tag对应的commit上,右键,点击Checkout commit即可
这时我们回到QtCreator查看,会弹出这个窗口,点击Yes to All。
然后看到,的确是V0.0.1的代码了,而且项目名称这里也显示了。
注意的是,现在这个状态下,代码文件都是【临时】的,修改后无法提交commit的。现在是Detached HEAD,不属于任何一个branch。
要回到正常的代码编辑处理流程,必须切换回到某个branch。
3.4.在别的电脑上clone代码出来
假如说我在工作电脑A上面进行了上述的所有操作,然后我把U盘拔出来。然后出差了,到了新的工作地点,把U盘插到了电脑B。
那么在电脑B上,我如何把这个Qt工程拷贝出来?
其实简单,就是标题说的,git clone。
在B电脑上的某个文件夹下,启动git的命令行
执行下面的命令(具体路径得看你的U盘路径)
git clone H:/git/MyProject.git
打开文件夹看看,
再用Github Desktop看看。也没问题。
4.其他
假如在工作目录下,某些文件或者文件夹不希望备份到代码库中,我们可以在工作目录下新建一个.gitignore文件,里面写上对应的内容即可。
比如在我的工程目录下,build文件夹是在编译时自动生成,当然不希望将其备份起来,因此可以这样写。
5.结语
更加高级的功能,还是查询git如何使用。目前已知的功能,对于我来说,已经够了。