VisualStudio与Git/GitHub的使用

即使是独狼玩家也应该学会使用Git(版本控制器)

没有Git时候的情景:
为了满足新需求,我想添加些功能,或者觉得重构之后会更适合未来的需求(易于添加功能),just do it,然后发现写得不太行,还不如老版本,如果没有备份老版本那么就只能凭借记忆手动修改恢复了(吐血),如果有备份那就用备份的老版本.(就好比打游戏的时候为了避免坏档,害怕选了这个对话选项对剧情走向变化太大,或者想每个选项都试一下,导致每次都要备份下存档.)为避免难以恢复的损坏代码,就只能定期备份.然后备份也来越多,既浪费内存,也不能完全满足回挡需求(简单的存档备份并不会记录每次做了什么更改,这个更改发生在何时,你能知道的就只有今天的存档比昨天多了点新功能)

于是某些大佬就开发出Git这类的版本控制器
原理大概是不同版本(分支)相同部分共用相同的储存,不同部分区别记录

简单介绍(常用功能)

1版本(分支)扩展

(随便一个工程)添加到源代码管理->Git
VisualStudio与Git/GitHub的使用
出现如下界面(关于远程同步,暂时不用管)->点击小房子(主页)
VisualStudio与Git/GitHub的使用
版本控制主要用到(更改)(分支) 功能,(拉取请求)(同步)(标记)用于云合作,(设置)自己摸索一下就知道怎么用
VisualStudio与Git/GitHub的使用
点击分支,创建新分支
VisualStudio与Git/GitHub的使用

选择(新建分支),在新分支进行修改
VisualStudio与Git/GitHub的使用
进行修改后
VisualStudio与Git/GitHub的使用
一定要提交(点击主页然后打开更改界面)
更改数就是刚才的更改
VisualStudio与Git/GitHub的使用
右键可以进行比较(查看做了什么修改)
VisualStudio与Git/GitHub的使用
填写必要信息后(全部提交)
VisualStudio与Git/GitHub的使用
此时就有两个不同版本
master
VisualStudio与Git/GitHub的使用
new
VisualStudio与Git/GitHub的使用
master写了些其他功能后
VisualStudio与Git/GitHub的使用
觉得两个版本的功能都不错都可以保留
进入(分支)界面
VisualStudio与Git/GitHub的使用

2不同版本(分支)合并

VisualStudio与Git/GitHub的使用
将分支new的所有修改应用于分支master
VisualStudio与Git/GitHub的使用
有冲突需要解决
VisualStudio与Git/GitHub的使用
VisualStudio与Git/GitHub的使用
都要保留都勾一下
VisualStudio与Git/GitHub的使用
然后接受合并
VisualStudio与Git/GitHub的使用
解决后没有冲突即可进行最后一步(提交合并)
VisualStudio与Git/GitHub的使用
返回(更改)界面(提交临时数据)
VisualStudio与Git/GitHub的使用
ok(同步用于上传云代码库,暂时不用管)VisualStudio与Git/GitHub的使用
(重新加载一下项目)结果就是master拥有new的新增修改
VisualStudio与Git/GitHub的使用

3版本回滚(回档)

点开历史记录
VisualStudio与Git/GitHub的使用
历史记录
VisualStudio与Git/GitHub的使用
(还原,重置,挑炼)具体原理参考 https://blog.csdn.net/dashumak/article/details/90200014
不想了解太多可以简单粗暴点找到自己想要恢复(或者再次分支)的位置一律选这个删除更改即可还原到当时的状态
(原理解析看似花里胡哨的各种分支合并,新建分支.其实git的reset本质还是基于时间线的)
VisualStudio与Git/GitHub的使用

关于GitHub(等云代码库)的简单使用及如何通过GitHub进行团队合作有空再填坑

主要用途功能:

版本控制,云端储存
提供git的基本功能(分叉,合并,回滚),从本地储存同步到云端

团队,社区合作
从主仓库(管理员) fork(分叉:就是复制的意思) 一份到自己的仓库,进行维护更新后 提出Pull requests(拉取请求:请求对方将自己的改动添加到主仓库) 等待对方确认同意即可向该项目贡献自己的一份代码

VisualStudio与Git/GitHub的使用
同步:本地的修改推送到仓库,仓库的修改拉取到本地(没冲突直接完成,有冲突需要手动确认)
推送:本地的修改推送到仓库
拉取:仓库的修改拉取到本地
提取:审核仓库的修改然后决定是否拉取