赞
踩
SVN时集中式的版本控制系统,版本库是集中在中央服务器的,而开发人员工作的时候用的都是自己的电脑,所以首先从中央服务器中下载最新的版本,然后再进行开发,开发后还要把自己的代码提交到中央服务器中。
服务器单点故障,将导致所有人员无法工作;服务器硬盘损坏,意味着你可能会失去所有的历史记录!!!
分布式版本控制工具,分为两种仓库:本地仓库,远程仓库。
每一个客户端都保存着完整的历史记录,如果服务器发生故障,都可以通过客户端的记录得以恢复。
Git的安装比较简单,这里就不进行赘述。
安装完成后,桌面右键,可以看到Git GUI 与Git Bash 分别是Git提供的图形工具与命令工具。
Git的下载地址:Git下载地址
git init:初始化创建git仓库
git status:查看git状态(文件是否进行了添加、提交操作)
git add "文件名":添加,将指定文件添加到暂存区
git commit -m "描述信息":提交,将暂存区的文件提交到历史仓库
git log:查看日志(git提交的历史日志)
1.首先在本地新建一个文件夹,例如my_project
2.进入my_project文件夹,打开git bash,输入:git init进行初始化
3.再新建一个 test.txt 文本文件,输入:git status
红色字体表示没有进行添加操作的文件。
4.进行添加操作,输入:git add test.txt
状态如图所示,红色的字体没有了! 已经添加到了暂存区
5.使用commit命令,提交到本地历史仓库,输入:git commit -m "描述"
此时,数据已经提交到本地历史仓库中了。
6.使用git log查看提交日志
7.如果对test.txt进行了第二次提交,上面图片的黄色信息会发生变化。
commit 0a734fb0ef1921c7565f5a8ca7713663fff6e8a3
如下图所示:
git reflog 命令 :可以看到所有分支的所有操作记录(包括已经被删除的commit记录的操作)
git reset --hard “版本的唯一索引值” :git的版本切换
如图所示:
所以使用了git版本管理工具,开发的代码可以在任意的版次进行切换(前提是有进行commit提交后的)
(1)周期性较长的模块开发
假如你准备开发一个新功能,但是需要一个月才能完成
第一周写了20%的代码,突然发现写好的代码有一个严重的Bug
那现在要停下手中的新功能,去修复Bug
但是20%的代码又不能舍弃,又担心丢失,故需要开启一个新的分支。
(2)尝试性的模块开发
业务人员提了一个新的功能需求
经过分析,感觉应该是可以实现的
But不太确定,可以创建一个新分支进行尝试性开发。
Master是主分支,Dev分支,开发Dev分支的时候head指针是指向Dev的
Dev开发完成后,与Master进行合并,head与Master重新指向一起。
git branch "分支名": 创建命令
git checkout "分支名": 切换命令
git merge "分支名":合并分支
git branch -d "分支名" : 删除分支
(1)git branch "分支名": 创建命令
创建了一个Harmony的分支
可以通过3种方法查看当前分支
1.后面蓝色的括号。
2.git status 命令,"On branch master"。
3.git branch命令,显示了所有分支。
(2)git checkout "分支名": 切换命令
切换到Harmony分支,并且提交一次新的记录,test2.txt
返回master分支,查看是否有在Harmony分支中提交的test2.txt?显然是没有的!
显然,不同的分支是并行的关系,分支之间是互不影响的!
(3)git merge "分支名":合并分支
(4)git branch -d "分支名" : 删除分支
GitHub与 码云(Gitee)
以Gitee为例:
推送代码前,需要先配置一下SSH公钥(必须要做!!!)
1.设置Git账户
git config --global user.name "用户名"
git config --global user.email "邮箱"
cat ~/.ssh (查看是否生成过ssh公钥)
2.生成SSH公钥
ssh-keygen -t rsa -C "邮箱"
cat ~/.ssh/id_rsa.pub
3.设置账户公钥
4.公钥测试
ssh -T git@gitee.com
详情如下:
1.设置Git账户
2.生成SSH公钥
3.设置账户公钥
4.公钥测试
1.git remote add "远程仓库名称" "远程仓库URL"
仓库名称可以自己指定,相当于一个别名,即以后就不用使用URL了
2.git push -u "远程仓库名称" "分支名称"
在gitee上面就有了本地仓库的master的分支
git clone "仓库地址"
git pull "远程仓库名" "分支名"
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。