区别
- Gitee、Github、GitLab三个都提供了 个人和团队存储、分享、发布和协同开发项目的中心化云存储功能
名称 | 代码版块控制管理工具 | 是否收费 | 搭建环境 | 联网/ |
github | git | 公有仓库免费 私有仓库收费(鼓励代码共享) | 企业私有需要搭建 | 可离线(分布式) |
gitee | git | 个人免费 企业免费 按团队人数、仓库容量收费 | 否 | 可离线(分布式) |
gitlab | git | 私有仓库免费 | 是 | 可离线(分布式) |
svn | Subversion/TortoiseSvn![]() | 免费 | 是 | 是(集中式)那得有个SVN服务器 |
git名词术语解释
名词 | 说明 | 举例 |
仓库(Repository) | 产品代码仓库,保存了所有文件的修改历史。 | 开发者A、B、C、D代码就相当于不同的货物不管是成品还是半成品 往这个仓库送 |
本地仓库(local Repository) | 本地仓库,分布式特点,这样本地就能提交版本,进行代码版本控制,也就是离线状态也能用 | 开发者A、B、C、D自己的小仓库,即便通往仓库(Repository)的断了,也能保证货物的生产记录 |
暂存区(Staging area) | 暂存区是暂存工作区的文件变化。 | 见下方【git图解】 |
索引(Index) | 索引是暂存区的另一种术语,也是暂存区概念 | |
签入(Checkin) | 将新版本复制回仓库 | |
签出(Checkout) | 从仓库中将文件的最新修订版本复制到工作区 | |
提交(Commit) | 将暂存区的文件提交到仓库 | 见下方【git图解】 |
冲突(Conflict) | 多人对同一文件的同一部分进行了修改,导致了冲突的发生。 | 开发者A、B、C、D做了修改了同一个,导致了冲突的发生。 |
合并(Merge) | 将指定分支合并到当前分支 | |
头(HEAD) | 指向当前选择的分支。 | |
修订(Revision) | 表示代码的一个版本状态。Git通过用SHA1 hash算法表示的ID来标识不同的版本。 | |
标记(Tags) | 标记某个分支的某一个版本,方便检索和查看。 | |
推送(Push) | 向远程仓库推送当前分支 | |
拉取(Pull) | 从远程仓库拉取文件,并合并入当前分支。 | 见下方【git图解】这两个尿性相同 |
拷贝(clone) | 复制远程仓库到本地 | |
master(默认分支) | 供所有团队成员修改,按我的理解,它是“主干”更贴切 可设置由谁来推送,谁来合并规则,删除规则,则表示谁都可以操作 默认为保护分支:自定义保护策略,默认仓库管理员才能管理(推送)被保护的分支 | 产品底图(相当于最终稳定呈现版) |
常规分支 | 常规分支可通过gitee管理后台可视化创建,可以通过git命令创建 就是团队成员用的分支,如果不创建,那就是默认master分支 仓库成员(开发者权限及以上)可推送分支 | 基于底图画出来的草稿,开发者A、B、C、D都可以可以画 |
只读分支 | 任何人都无法推送代码(包括管理员和所有者),需要推送代码时应设为“常规”或“保护”分支 |
git图解
稍微瞄一眼这图,几乎git常用的命令都基于这个图!!!
为了便于理解,什么时候用clone、add、commit、pull、push、reset、fetch、diff 这个图就有思路
svn图解
git、svn命令一览
当然,
svn --help
git --help 命令都能看到
svn命令 | git命令 |
![]() | ![]() |
svn详细搭建链接
服务器与本地安装SVN详细步骤(linux/centos)_四肢发达的猿的博客-CSDN博客_本地svn服务器安装SVN步骤:①安装svn环境②创建svn库(项目库)③设置权限用户、设置密码、设置认证域④将svn库与项目关联起来 svn checkout⑤设置钩子一、服务器安装svn有网络的情况下,一句代码完成,下载大小2.8M,安装大小13M yum install subversion效果如下:输入Y,进行转换安装。,如下图:验证是否安装成功,如下图:svn --version二、创建项目的SVN库比如我们搭一个商城,仓库名为b2c-house:这个仓库我要放在/.https://blog.csdn.net/weixin_39921970/article/details/109180489?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167144561716782388094839%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=167144561716782388094839&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-2-109180489-null-null.nonecase&utm_term=svn&spm=1018.2226.3001.4450
linux/centos服务器项目代码上传到SVN仓库本地SVNUP_四肢发达的猿的博客-CSDN博客基于上一篇的服务器搭建SVN环境,这里描述下服务上的代码提交到svn仓库,然后本地checkout。前置条件:①服务器已有svn环境②项目目录已有SVN版本控制③项目目录下个别文件或文件夹,是在服务器中,但是没有在版本控制中,这类的本地svn是不能svn up下来这个文件。那就是服务器上的项目文件,加入版本控制。项目目录结构如下:如果服务器上有个test.html 没在版本控制中,如下图本地SVN UP 是没有test.html只需要两步:①递归提交项目目录下所有文件,这一步只是.https://blog.csdn.net/weixin_39921970/article/details/109185584?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167144561716782388094839%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=167144561716782388094839&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-109185584-null-null.nonecase&utm_term=svn&spm=1018.2226.3001.4450
gitee完整使用步骤
-
平台账号
-
建仓库(remote repository)
仓库和项目先后创建都没关系,都可以相互关联上
成功后,仓库信息如下:
-
建项目
仓库和项目先后创建都没关系,都可以相互关联上
-
安装本地git工具
官方地址:
Git - Downloading Packagehttps://git-scm.com/download/win
安装到底,验证成功如下图:
-
把线上的仓库的代码拉到本地项目文件夹
步骤一:瞄一眼仓库路径
gitee首页→代码 → ··· → 功能设置 → 基础信息
或者:
gitee首页→代码 → 仓库 → 任意一个仓库 → 概览
步骤二:本地新建个项目文件夹
如demo-vue-master
进目录下右击,如下图:
第一次需全局配置,第二次就不需要这一步(毕竟我这用户都登录了git)
git config --global user.name "Gitee账号的姓名"
git config --global user.email "Gitee账号的邮箱"
初始化
git init
如下图:
测试下创建文件,并提交gitee仓库如下:
touch README.md
效果如下图:
把README.md提交至暂存区
git add README.md
git commit -m "任意备注,不写也行,必须得引号 这句才把暂存的版本提交到远程gitee创的仓库"
git remote add origin https://gitee.com/gitee自动生成的名称/repositoryname.git #本地关联远程仓库,#后的不要写
git push -u origin master #推送到默认分支master,可新加分支
结合“git、svn图解”git add 只是到暂存区, 需要git commit -m ""
本地操作如下图:
验证gitee仓库有没文件:
-
其他开发成员加入并使用git版本控制
gitee首页→右侧 → 添加人员 (这个是先加人员)
gitee首页→代码 → ··· → 仓库列表 功能设置 → 成员管理(选择上面加入的人员,加入到这个项目的仓库代码同步工作)
团队其他成员同步gitee仓库代码
登录下各自的账户
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
拉取仓库代码
第一次拉取:
git init #第一次用初始化,后续不用
git clone 仓库地址 #第一次要这个
git pull 仓库地址 master #指定仓库的哪一个分支,默认master
或者用第一次拉取:
git init #第一次用初始化,后续不用
git remote add origin https://....
git pull origin master #此处拉取得是master分支的代码
很多帖子用clone,原理是 首次用git 需登录、 初始化(init)、用git把本地仓库连接远程仓库、然后拉代码或提交代码的操作
后面的每次拉取就是:
git pull
提交代码
git add 文件名 #若添加当前目录的全部文件 git add .
git commit -m "备注"
查看提交记录
git log
线上个版本有差异
git fetch --all #拉到本地仓库
git reset --hard origin/master #本地仓库拉到本地
git pull #拉