【软件】小王八git版本控制工具
前言
需要科学。
正文
下载
一般都是选x64了,虽然也有不少应用还是这个x86,但是记得配套就行,上面是git本体,下面是语言包
温馨提示,最好先下个git for windows,我因为早下了所以好像没提示
vs配置
然后就是visual studio的配置,一般也不做啥调整
打开工具-选项-源代码管理
默认都是git,问题不大,自己看下是不是。
然后再工具那边打开源代码管理的几个按钮
右击顶栏很多按钮那一条,弹出这个,选中源代码管理即可
选中之后,能看到多了一些,基础就大概这样了
gitee/github创建仓库
gitee嘛国内的不用科学,但是之前出了一档子破事好像都要审核了,我也没怎么用。
这里用的github,问题不大,懂得都懂。
简单介绍
然后create之后就能看到
没必要去翻我的哈。。自己学习用的
那么仓库建好了,就要用源代码管理工具去操作了。
首先看仓库的code按钮
有三种clone方式,第一种https,这个应该不陌生的吧大部分人,就是web协议,http的基础上加入ssl证书验证。第二种比较常用,ssh,为啥这么说呢。。之前瞎搞linux的时候,就常用就是直接clone到文件夹,然后去执行./install.sh脚本哈哈哈。第三种带了个cli,估计就是client,github的客户端了应该是。
小乌龟添加的方式差不多也用ssh,所以copy这个ssh给的链接。
然后找个地方建个空的文件夹,因为要clone进去,文件夹的名字和仓库名倒是没要求要一样,我这是为了好区分。
然后在此处右击
点击这个克隆
我们把url填入其中
github复制的url不需要做什么改动,除此之外小微调一下
然后点击是的时候大概率会报错,server sent :publickey
,大致意思就是你没有设置publickey,我是用hexo搭博客上传到github的,用的就是git的客户端。自然是设置过这个publickey的
首先打开tortoisegit的settings,找到网络,看下面的ssh客户端,原先那个我懒得再配一个给github了,反正我git用的多,直接用git的ssh就行了。
如果你没有用过git for windows,那么我推荐你去下一个!
操作也不难,我学过linux,一般都是用git bash。
请前往我创建博客的文章,找到在用户目录下打开.ssh和用git bash设置github用户名+创建邮箱那几个地方。
如若不然,只得您自行寻找给小乌龟git的ssh客户端新建一个sshkey的凭证
设置完成后,重新clone。
就没问题了,文件也clone到本地磁盘了。
打开也没啥,就一个readme.md的自述文件,.git
是隐藏文件,主要还是记录了git的信息。
日志信息
右击这个clone的文件夹
在旁边能找到显示日志信息的选项打开
信息可以说还是很全面的。
日志可以很好的看出代码的改动,是谁改的,什么时候改的。而且防止删除源代码,在你不是这个库的创建者下,无权删除整个仓库,你顶多删掉你更新的那一块,不至于让整个项目从零开始。
创建项目
在github创建的时候仓库就是空的,除了一个自述文件。
那么最开始就配置的vs不能浪费,通过vs创建项目,然后上传一举多得。
注意路径是你之前clone的项目路径
然后这里把MFC标头勾选,点击确定项目就创建好了。
创建好保存一下,先关闭vs。
然后转到文件夹,会看到我们这个新建的项目文件前面没有绿色的勾。
其实也就是因为他还没上传到仓库。
右击这个文件选择提交到->
大致跟着来,但是注意,不要全选文件上传,有个文件是没啥价值的。
.vs目录是用来存储当前用户在解决方案中的工作配置,具体包括VS关闭前最后的窗口布局、最后打开的选项卡/操作记录/文件文档、某些自定义配置/开发环境、调试断点等这类设置信息和状态。直接删掉没有任何问题。
相当于说每台电脑生成项目的时候这个.vs都不一样,所以没有必要上传他,而且这个文件很占内存。
我们可以右击手动设置忽略掉这个文件夹
注意不要收养选递归,不然有的时候出现重名啥的会被直接忽略。
除了这个.vs
文件夹,还有一个文件也是不大需要的,
可以看到是user,就是用户,那么每个用户生成的肯定也不一样。
这个也不需要,忽略掉
小乌龟提交和推送
当你点击提交的时候,他还没有直接上传到仓库,而是生成缓存,只有点击推送了才是真的上传到仓库。
做这些分层的工作,自然是为了更加安全的,有意义的,符合逻辑的上传。因为改多了突然一激灵想到那有问题,就可以重新来了。
点击推送,就完事了。
推送完成后能看到这个项目文件夹也多了绿色勾选。
亦可以通过日志,看到我们的更改信息
vs重新打开的时候其实也能看到
vs提交和推送
有一点是我们创建项目没有做的,就是生成解决方案
因为这个是我们编译后的产物,别人只需要拿到源码自己编译就行了。
所以我们在vs中先生成解决方案,然后到文件夹里面挨个忽略掉
这里多个x64是手残了,没把项目的x64改成x86,老实说一般都还是x86比较多。
除了外面的debug文件夹,两个项目里面都有debug和x64,需要手动忽略,方法跟之前的一样。
回过头来,当vs这些文件都出现蓝色的锁,就表示它们已经上传到仓库了。
当我们修改过其中一个地方,这个文件的蓝色锁就变成红色了。
当有文件改动的时候,git插件就要干活了
能看到多了一个提交和撤销。
这里选提交,点击全部暂存,看到.sln记得忽略掉。
然后就是点击全部提交,会显示一个本地创建
完成之后点击同步,然后再点击旁边的推送。
最后也可以在日志中看到我们这次通过vs的提交
其次在输出里面切换到git,我们也能看到流程
此外github的仓库自然也能看到推送的情况
分支
我们目前的操作,都是推送给main分支,也就是覆盖性的操作。
当然如果每次都覆盖,有一天新版本挂了想要恢复到某一结点就是不可能的事了。
所以仓库还有一个分支的选项。
可以通过git更改的页,去选中那三个点,然后选择创建分支
显然分支的存在带来了很大的便捷性,毕竟一个项目会衍生出不同的情况,在许多个方案之间反复横跳,我们就可以通过分支去跟着横跳达到需求。
用vs切换分支不难,直接在git更改里面,这个框选里面选择就行
还有就是命令行的情况,因为装了git for windows,所以有个git bash的产物,都是以linux命令行的形式玩的挺好用的。
首先就是查看分支,和切换分支,不过分支是啥其实路径都明明白白了。
然后我们修改分支,在代码里加一句注释,等会上传完切换分支看看效果
在github里面很自然的看出了两个分支,而新增的分支,多了一个我们刚才上传的localtest。
ok,重点时刻
当我们在vs的git更改里面,签回main分支,会发现那句注释不见了。
切回到local_branch的时候注释又出来了
这就是分支的力量。
默认情况下创建的仓库,主分支一般都叫main或者master,目前新仓库的默认主分支都叫main了,老的可能还是master,具体原因可以百度好像是master这个词多义性。而主分支只有在新分支开发的功能完全ok的情况下才会合并一次,直接在主分支上操作的风险略高,且不利于团队发现问题。而且大部分情况下,功能也不会只有一个,多个人同时写尽量都创建分支
附:百度来的一些分支命名
- git主分支(master)。它是自动建立,用于发布重大版本更新。
- git开发主分支(develop)。日常开发在此分支上进行。
- git临时性分支:主要是应对日常开发中的遇到的版本问题的。
- 功能(feature)分支:它是为了开发某种特定功能,从Develop分支上面分出来的。开发完成后,要再并入Develop。可以采用feature-*的形式命名。
- 预发布(release)分支:指发布正式版本之前(即合并到Master分支之前),我们可能需要有一个预发布的版本进行测试。预发布分支是从Develop分支上面分出来的,预发布结束以后,必须合并进Develop和Master分支。它的命名,可以采用release-*的形式。
- 修补bug(hotfix)分支:软件正式发布以后,难免会出现bug。这时就需要创建一个分支,进行bug修补。修补bug分支是从Master分支上面分出来的。修补结束以后,再合并进Master和Develop分支。它的命名,可以采用hotfix-*的
用git bash操作也差不多的。无非就是图形化和命令行
这里提示了一下,因为我改动了哈哈
附:git的命令
1 | #查看分支列表 |
项目分析
- 需求分析
- 市场需求
- 估值
- 技术分析
- 技术栈涉及多少
- 时效
反正要考虑的挺多的,一个项目能不能立项要看需求,但是有的时候有需求没有用,没有资金筹备,项目上不了线,终归是胎死腹中。
还有感人的产品锦鲤,毕竟需求不可能是固定的。
附:git命令行操作
网上copy的也就看看先,具体要用到哪些还不确定:
一、 创建test分支提交步骤
列出所有分支
git branch -a
创建test分支
git branch test
切换到test分支:
git checkout test
添加add修改:
git add .
添加commit注释
git commit -m “第一次提交代码”
提交到服务器
git push origin test
二、将test分支合并到master本地分支
创建test分支
git branch test
切换到test分支
git checkout test
在test分支添加一个readme.txt文件
touch readme.txt
git add readme.txt提交commit本地文件
git commit -m “增加readme.txt”
切换到master分支
git checkout master
把test分支合并到master分支
git merge test
提交master分支到服务器
git push origin master
删除test分支
git branch -d test
结语
未完结~待续