一、Git简介和用途
-
Git简介
Git官网git-scm.com这样描述到:Git is a free and open source distributed version control system.
可以知道Git是一个免费开源的分布式版本控制系统,简单讲是被用于处理各种大小型项目的工具。
-
用途
(1)托管代码到远程,分布式托管,避免本机磁盘损坏或其他意外造成不可挽回的局面;
(2)版本控制,可以发布多个版本并且实现在各个版本之间来回穿梭;
(实现原理:文件快照,每个版本都会有一个文件快照,比直接备份文件快速便捷。因此,Git仓库又被称为版本库)
(3)团队协作,强大的分支功能,可以快速实现团队协作。
二、常见国内外Git代码托管平台
-
github:https://github.com
github是全球最大的开源社交编程及代码托管网站,也被称为全球最大同性交友网。全英文,由于是外网,所以有时候会断开链接,常常会使用第三方加速器,如 steam++(现更名 Watt Toolkit) https://steampp.net/。
-
coding:https://dev.tencent.com
coding是与腾讯云达成战略合作,基于云计算的软件开发平台,集项目管理、代码托管、运行空间、质量控制为一体。
-
gitee:https://gitee.com
码云(gitee.com)是OSCHINA.NET推出的代码托管平台,支持Git和SVN,提供免费的私有仓库托管。
三、Git工作流程
- 概念介绍
单词 | 解析 |
---|---|
workspace | 本地工作空间 |
index | 暂存区 |
repository | 本地版本库 |
remote | 远程版本库 |
2. 工作流程
要实现代码托管,需要在本地init(initialization)初始化一个本地仓库,通过add命令添加到暂存区,然后commit提交到本地仓库(每一次提交都会产生一个新的版本),最后通过push推送到远程。
四、Git使用步骤
本次以gitee为例,github或coding使用方法一致。
特别提醒:步骤中的【】中括号括起来的部分替换成你自己相应的内容,不需要保留中括号。具体步骤如下:
-
第一次安装git的时候要执行1—4步,否则从第5步开始
安装git工具,安装完成之后,在任意位置鼠标右键只要出现git bash here菜单即说明安装成功。 -
注册gitee的账号(或其他平台的账号),修改个人空间地址(姓名即id名),绑定邮箱或手机号;
-
全局配置用户名和邮箱
git config --global user.name 【个人空间地址用户名】
git config --global user.email 【账号绑定的邮箱】
-
配置密钥对:生成公钥和私钥,用于上传代码时的安全验证
简而言之就是让本地电脑与远程配对,在git bash里执行命令ssh-keygen
一路回车,就可以生成密钥对,默认密钥对是存放在(/c/Users/[主机用户名]/.ssh/)。
这个目录下有两个文件,.pub就是公钥,另外一个是私钥,这两个文件千万不要动!!!
到线上(gitee或其他平台)打开设置 =>安全设置 =>ssh公钥,把本地的公钥文件全选复制进来,输入登录密码,就配置成功了。
-
第一次创建托管项目的时候执行5—7步,否则从第8步开始
创建本地仓库
在本地创建一个项目文件夹,项目代码都在这个文件夹里,执行git init
初始化一个git仓库,这个时候项目里会出一个.git目录(这个目录默认是隐藏的,这里就是用来存放文件快照的地方,是个版本库),这个目录千万不要动!!!
因为一个.git目录就是一个版本库,都是独一无二的。
-
创建一个线上远程仓库
登录gitee,新建仓库,输入项目名称,选择私有或者公开源代码(私有在加入合作者之前就只能你自己能查看,公开就意味着开源),下面的选框一个都不要勾(初始化的不是文件都来自本地仓库,线上仓库不需要任何文件),最后点击创建就OK了。
-
将本地仓库和线上仓库建立关联:
git remote add origin 【线上仓库的SSH地址】
如果在执行这句话的时候报错:fatal:remote origin already exists.
那么就先执行git remote rm origin
再重新执行git remote add origin 【线上仓库的SSH地址】
-
代码添加到暂存区
执行命令行git add -A
,即全部添加到暂存区
也可以执行git add 【文件名】
来单独添加某一个文件 -
代码提交到本地仓库
执行命令行git commit -m‘【说明本次提交所作的操作,越详细越好’】
描述的越详细越方便版本管理,如版本回退时方便提取 -
代码推送到远程
执行git push origin master
五、Git常见命令
- Git 一般命令
命令 | 功能 |
---|---|
git init | 初始化仓库 |
git config | 配置用户信息 |
git remote | 新增或者删除远程仓库的关联 |
git add . | 添加到暂存区 |
git commit | 代码提交(每一次commit都会有一个新的版本号) |
git push | 推送到远程仓库 |
git status | 查看当前仓库的状态 |
git log | 查看日志(每一个commit在这里都能查看到,而且commit后面的随机字符串就是版本号),按字母q退出log |
git reset --hard | 【要回退的版本号 】回退到之前的某一个版本 |
git clone 【线上仓库的https地址】 | 把线上仓库代码克隆到本地 |
git pull | 在已有的仓库基础上拉取最新的线上代码 |
- 分支管理命令
主分支是 master,永远只存储一个可以稳定运行的版本,不能在这个分支上直接开发。
命令 | 功能 |
---|---|
git branch | 查看所有分支,同时查看当前分支 |
git checkout 分支名 | 切换到指定分支 |
git checkout -b 分支名 | 创建并切换分支,上面两条的连写方式 |
git branch -d 分支名 | 删除指定分支,一定先切换至其他分支 |
- 合并分支代码产生冲突解决
合并分支可能会失败,可以将文件用 VsCode 打开,会自动匹配差异,手动选择要保留的部分
命令 | 功能 |
---|---|
git merge 分支名 | 将指定分支下的代码合并到当前分支 |
- 其他
命令 | 功能 |
---|---|
方向键 ↑ ↓ | 可以查看之前敲过的命令 |
两次 Ctrl + C | 退出当前操作 |
六、使用Git时候的一些注意事项
-
一个本地版本库(一台电脑的一个.git)对应一个线上远程仓库;
-
远程代码和本地代码要保持统一,即一直保持最新的状态;
如在公司电脑上传项目至线上远程仓库后,回家加班时,先克隆项目至家中电脑,修改后的代码需要将新的代码上传至线上远程库,第二天到公司再拉取线上项目,使本地项目一直保持最新状态; -
.git文件不能嵌套(仓库不能嵌套)
七、使用Git提交时的备注信息规范
用于说明commit的类别,只允许使用下面7个标识
标识 | 说明类别 |
---|---|
feat | 新功能(feature) |
fix | 修补bug |
docs | 文档(documentation) |
style | 格式(不影响代码运行的变动) |
refactor | 重构(即不是新增功能,也不是修改bug的代码变动) |
test | 增加测试 |
chore | 构建过程或辅助工具的变动 |