赞
踩
版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。用于解决代码备份、版本控制、协同工作、责任追溯等开发中的问题。
2.版本控制分类
2.1 集中版本控制 SVN
SVN是集中式版本控制系统,所有的版本数据都保存在服务器上,开发者需要从中央服务器下载最新的版本,然后开发,开发后再把自己开发的代码提交到中央服务器。
可能出现的问题:
2.2 分布式版本控制 Git
所有的版本信息远程仓库全部同步到本地的每个用户,可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时push到相应的服务器或其他用户那里。由于每个用户保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据。Git可以直接看到更新了哪些代码和文件
可能出现的问题:
具体请看 Git下载与安装
查看配置 git config -l
查看不同级别的配置文件:
git config --system --list 查看系统配置
git config --global --list 查看当前用户(global)配置
Git必要设置 设置用户名与邮箱(用户标识,必要)
当安装Git后首先要做的事情是设置你的用户名称和e-mail地址。这是非常重要的,因为每次Git提交都会使用该信息。它被永远的嵌入到了你的提交中。
配置方法:
git config --global user.name "czm" #名称
git config --global user.email "670495662@qq.com" #邮箱
–global为全局配置,只需要配置一次。如果你想要在一个特定的项目中使用不同的名称或e-mail地址,你可以在该项目中运行该命令而不要–global选项。
配置完后在本地 C:\Users\Administrator(本机名)\ .gitconfig 能查看自己的配置。
1.Git 的四个区域
Git总共有4个区域,在本地有三个区域,分别是 工作区(Workspace)、暂存区(Stage/Index)、本地仓库(Repository或Git Directory),以及远程git仓库(Remote Directory)。文件在这四个区域之间的转换关系如下:
Workspace:工作区,就是平时存放项目代码的地方
Stage/Index:暂存区,代码提交到仓库之前的临时存储空间
Repository:本地仓库,存放不同版本的代码,例如:(完成了项目10%的代码、完成项目20%的代码)
Remote Directory:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
修改、新建的文件都在工作区,都需要先add到暂存区,再commit到本地仓库,再push到远程仓库\
2、Git常用命令
git工作流程
git的工作流程一般是这样的:
1、在工作目录中添加、修改文件;
2、将需要进行版本管理的文件放入暂存区域;
3、将暂存区域的文件提交到本地仓库。
本地仓库搭建
创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是克隆远程仓库;
1.创建全新的仓库
1.1 在当前目录下,右键,点击Git Bash Here
1.2 进入黑窗口,输入 git init 命令
1.3 在当前目录中可以看到 .git 文件,则初始化成功,关于版本等的所有信息都在.git目录里面。
克隆远程仓库
注意:.git 文件不一定能看得到,需要设置显示隐藏文件夹
2.克隆远程仓库
1.1 在当前目录下,右键,点击Git Bash Here
1.2 进入黑窗口,输入 git clone [远程仓库地址] 命令
远程仓库地址可以是gitee或github上的,例如 https://gitee.com/kuangstudy/openclass.git , 克隆是克隆一个项目和它的整个代码历史(版本信息)
Git忽略文件
有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等在主目录下建立".gitignore"文件,此文件有如下规则: 忽略文件中的空行或以井号(#)开始的行将会被忽略。 可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2,...})代表可选的字符串等。 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。 如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。 如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。 #为注释 *.txt #忽略所有 .txt结尾的文件,这样的话上传就不会被选中! !lib.txt #但lib.txt除外 /temp #仅忽略项目根目录下的TODO文件,不包括其它目录temp build/ #忽略build/目录下的所有文件 doc/*.txt #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
常用的忽略文件
5.1历史版本切换
git reflog :可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录的操作),查看版本的唯一索引
使用指令 git reset --hard 版本唯一索引值 进行版本切换
5.2 分支管理
分支:由每次提交的代码,串成的一条时间线,使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。 分支就像是科幻电影里面的平行宇宙,如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,我们就需要处理一些问题了!
分支工作流程:
5.3分支管理操作
创建和切换
创建命令:git branch 分支名
切换命令:git checkout 分支名
新分支添加文件
查看文件命令:ls
总结:不同分支之间的关系是平行的关系,不会相互影响
合并分支
合并命令:git merge 分支名
删除分支
删除命令:git branch -d 分支名
查看分支列表
查看命令:git branch
6.1远程仓库工作流程
远程仓库用于多人协作开发。
6.2远程仓库平台介绍
GitHub
域名:https://github.com
介绍:GitHub是全球最大的开源项目托管平台,俗称大型程序员社区化交友网站
各类好玩有趣的开源项目,只有想不到,没有找不到。
码云
域名:https://gitee.com
介绍:码云是全国最大的开源项目托管平台,良心平台,速度快,提供免费私有库
6.3码云 生成SSH秘钥
使用码云作为远程仓库举例说明,在每次push代码到远程仓库时,都得输入账号密码,配置SSH公钥后,就可以实现免密上传。
生成SSH公钥步骤
生成SSH公钥
生成命令: ssh-keygen –t rsa –C “邮箱” ( 注意:这里需要敲3次回车)
查看命令: cat ~/.ssh/id-rsa.pub
在C:\Users\Administrator(本机名)\ .ssh\id_rsa.pub 中也能查看SSH公钥
设置账户公钥
公钥测试
命令: ssh -T git@gitee.com
6.4 先有远程仓库,本地为空
步骤
1、新建项目,绑定git,直接将远程的git文件目录拷贝到项目中即可!
注意观察idea中的变化
单击文件右键,可以进行文件的添加和提交
也可在Terminal使用命令,也上面的命令相同(推荐)
在Version Controller 中可查看文件操作的详情
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。