目录
2.1、集中式版本控制工具(CVS、SVN、VSS......)
2.2、分布式版本控制工具(Git、Mercurial、Bazaar、Darcs......)
一、Git概述
1、版本控制
是什么:版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统
为什么:个人开发过渡到团队协作
2、版本控制工具
2.1、集中式版本控制工具(CVS、SVN、VSS......)
定义:有一个单一的集中管理的服务器,保存所有文件的修订版本。协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新
优点:每个人都可以在一定程度上看到项目中的其他人正在做些什么,管理员也可以轻松掌握每个开发者的权限。
缺点:中央服务器的单点故障
2.2、分布式版本控制工具(Git、Mercurial、Bazaar、Darcs......)
定义:像Git这种分布式版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码仓库完整的镜像到本地库。
优点:服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)。每个客户端保存的都是完整项目的代码(包含历史记录,更加安全)。
3、Git工作机制
4、Git和代码托管中心
代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库
局域网
GitLab
互联网
GitHub(外网)
Gitee(国内网站)
二、Git安装
网址:Git - Downloading Package (git-scm.com)
三、Git常用命令
1、设置用户签名
git config --global user.name <用户名>
git config --global user.email <用户邮箱>
2、初始化本地版本
git init
3、查看本地库状态
git status
4、添加暂存区
git add <file>
5、提交本地库
git commit -m "日志信息" <file>
6、查看历史记录
git relog
git log
7、版本穿梭
git reset --hard <版本号>
四、Git分支操作
1、分支是什么
在版本控制过程中,同时推进多个任务,我们就可以为每个任务创建一个单独的分支。使用分支意味者程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候不会影响主线分支的运行。
2、分支的好处
同时并行推进多个功能开发,提高开发效率。
各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
3、分支的操作
创建分支:git branch <分支名>
查看分支:git branch -v
切换分支:git checkout <分支名>
把指定的分支合并到当前分支上:git merge <分支名>
产生冲突的原因:
合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。git无法替我们决定使用哪一个,必须人为决定新代码内容。
解决冲突:
(1)编辑冲突的文件,决定要使用的内容
(2)git add <file>
(3)git commit -m "日志信息"
五、Git团队协作机制
1、团队内协作
2、跨团队协作
六、GitHub操作
1、创建远程库
GitHub网址:https://github.com
Gitee网址:https://gitee.com
2、远程库操作
2.1、创建远程仓库别名
查看当前所有远程地址别名:git remote -v
创建远程地址别名:git remote add <别名> <链接>
删除远程地址别名:git remote remote <别名>
2.2、推送本地分支到远程仓库
git push <远程库链接> <分支>
2.3、拉取远程仓库内容
git pull <远程库链接> <分支>
2.4、克隆远地仓库到本地
git clone <远程库链接>
拉取代码
初始化本地库
创建链接别名
3、SSH免密登录
ssh-keygen -t rsa -C 1216976047@qq.com
在C盘当前用户下生成.ssh文件(内含私钥id_rsa、公钥id_rsa.pub)
ps:
推拉代码时若报这个错误Host key verification failed. fatal: Could not read from remote repository.
这个原因是,远端服务器地址不在已知的host的中,询问是不是要把远端地址加入到konw_host中,如果直接回车,则默认没有权限写入,必须输入 yes才能正确写入 konw_host
七、Git steps used in project
1、create your own branch
git branch –b abc
2、push your branch to remote
git push origin abc
3、before writing code or making any changes locally,please switch to your own branch
git branch
git checkout abc
4、writing code or making any changes locally
5、push the code
git stash
git fetch
git rebase origin/main
git stash apply
git add <file>
git commit -m "日志信息" <file>
git fetch
git rebase origin/main
git push origin 本地分支名:远程分支名
6、Go to github.ford.com
Click new pull request
Choose which branch you want to merge into master
Click create pull request
Add reviewers