什么是版本控制,版本迭代?
版本控制是一种在开发过程中用于管理对文件、目录、工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前版本的软件工程技术。
这时就需要版本控制工具来解决这些问题。
常见的版本控制工具
主流的版本控制工具有:
1、本地版本控制
记录文件每次的更新,可以对每个版本做一个对照,或是记录补丁文件,适合个人使用。
2、集中版本控制
所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改。
但是存在缺点,如果不联网,用户就看不到历史版本,而且所有的数据都保存在单一的服务器上,有很大的风险服务器会宕机、损坏,这样就会丢失数据,所以需要定期备份,代表产品:SVN,CVS,VSS。
3、分布式版本控制
所有的版本信息仓库全部同步到本地的每个用户,这样可以在本地查看所有版本的历史,即使离线状态,也可以本地提交,只需在联网时push到相应的服务器或者其他用户里即可。由于每个用户保存的都是所有的版本数据,只要有一个用户的设备没有问题,就可以恢复所有的数据,但这增加了本地存储空间的占用,且每个人都拥有全部的代码,存在安全隐患。优点:不会因为服务器的损坏或者网络问题,造成不能工作的情况。代表产品:Git。
Git是目前世界上最先进的分布式控制版本系统。
Git官网 https://git-scm.com/
进行无脑安装即可。安装时已自动配置好,环境变量的目的就是为了可以全局使用,但是右键菜单栏中都会应用程序,所以无需再配置环境变量。
在Windows应用中会有Git应用,同时右键的菜单栏中也可以看到对应的应用程序。
Git Bash:Unix与Linux风格的命令行,使用最多,推荐;
[外链图片转存失败,源站可能有防盗]!链机制,建(htps://xleixz.oss-cn-nanjing.aliyuncs.com/typora-img/image-20220823233541049.png" alt="image-20220823233541049)]
Git GUI:图形界面的Git,不建议初学者使用,尽量熟悉常用命令。
Git相关的配置文件:
目录位置:Users\Administrator\.gitconfig 只适用于当前登录用户的配置 global全局
设置用户名与邮箱(用户标识,必要)
当安装Git后,首先要做的事情就是设置用户名和e-mail地址。这是最重要的配置,因为每次Git提交都会使用该信息。这会被永远嵌入到每次的提交中。
git config --global user.name "xleixz" #名称
git config --global user.email "[email protected]" #邮箱
查看配置
# 查看配置文件
git config -l
# 查看当前用户(本地)配置
git config --global --list
# 查看系统配置
git config --system --list
Git本地有三个工作区域,分别是:工作目录、暂存区、资源库。如果加上远程的Git仓库,就可以分为四个工作区域。文件在这四个区域之间转换关系如下:
因此,git管理文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)
查看文件状态
# 查看指定文件状态
git status [filename]
# 查看所有文件状态
git status
添加所有命令到暂存区
# 添加所有命令到暂存区
git add .
提交暂存中的内容到本地仓库
# 提交暂存区内文件到本地仓库,-m 表示提交信息
git commit -m ""
推送至远程仓库
# 推送
git push
拉取更新
# 拉取更新
git pull
有时候不需要把某些文件提交到版本控制中,比如临时文件,设计文件等。
在主目录下建立“.gitignore”文件,此文件有如下规则:
# 为注释
*.txt #忽略所有 .txt结尾的文件,上传时就不会被选中!
!lib.txt #但lib.txt除外
/temp #仅忽略项目根目录下的TODO文件,不包括其他目录temp
build/ #忽略build/目录下的所有文件
doc/*.txt #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
生成SSH公钥
# 进入 C:\Users\Administrator\.ssh 目录
# 生成公钥
ssh-keygen
# 可以使用官网推荐的加密算法
ssh-keygen -t rsa
许可证:开源是否可以随意转载,开源是否可以商用,开源是否可以转载……
许可证推荐GPL-3.0即可。
步骤和命令行一样:先添加到暂存区,再提交到本地仓库,最后推送至远程仓库
建议:尽量使用命令行操作,比较快捷方便,图形化较为麻烦!
列出所有本地分支
# 列出所有本地分支
git branch
列出所有远程分支
# 列出所有远程分支
git branch -r
新建一个分支,但是目前还在当前分支
# 新建一个分支,但是目前还在当前分支
git branch [branch-name]
新建一个分支,并且切换到该分支
# 新建一个分支,并且切换到该分支
git checkout -b [branch]
合并指定分支到当前分支
# 合并指定分支到当前分支
git merge [branch]
删除本地分支
# 删除本地分支
git branch -d [branch-name]
删除远程分支
# 删除远程分支
git push origin --delete [branch-name]
点击查看:https://gitee.com/all-about-git