Git—使用说明书

一、Git 简介

Git 是一个免费开源的分布式版本控制系统,用于快速高效地处理各种大小型的项目。


二、Git用途

托管代码到远程,分布式托管,避免本机磁盘损坏造成不可挽回的局面。
版本控制,可以发布多个版本并且实现哥个版本之间来回穿梭(实现原理:文件快照,每个版本都会有一个文件快照,比直接备份文件快速便捷。因此,Git仓库又被称为版本库)

团队协作,强大的分支功能,可以快速实现团队协作


三、Git代码托管平台

1、github: https://github.com

github是全球最大的开源社交编程及代码托管网站。

2、coding: https://dev.tencent.com

与腾讯云达成战略合作,基于云计算技术的软件开发平台,集项目管理、代码托管、运行空间、质量控制为一体。

3、gitee: https://gitee.com

码云(gitee.com)是 OSCHINA.NET 推出的代码托管平台,支持 Git 和 SVN,提供免费的私有仓库托管。


四、Git 工作流程

要实现代码托管,需要在本地init一个本地仓库,通过 add 命令添加到暂存区,然后 commit 提交到本地仓库(每一次提交都会产生一个新的版本),最后通过push 推送到远程。

git示意图

1、概念介绍

workspace:本地工作空间
Index:暂存区
repository:本地版本库
remote:远程版本库


五、Git 使用步骤

1、安装git工具

安装完成之后鼠标右键只要出现 git bash here 菜单即说明安装成功。

windows系统下载链接

MAC下载链接

2、注册gitee的账号(或其他平台账号),修改个人空间地址,绑定邮箱

3、全局配置用户名和邮箱

git config –global user.name “用户名”
git config –global user.email “邮箱”

4、配置密钥对:生成公钥和私钥,用于上传代码时的安全验证

git bash里执行命令ssh-keygen 一路回车,就可以生成密钥对,默认密钥对是存放在(/c/Users/[主机用户名]/.ssh/) 。这个目录下有两个文件, .pub就是公钥,另外一个是私钥。
到线上(gitee或其他平台)打开设置->安全设置->ssh公钥,把本地的公钥文件全选复制进来,输入登录密码,就配置成功了

5、初始化本地仓库

执行命令:git init
在本地创建一个项目文件夹,项目代码都在这个文件夹里,执行 git init 初始化一个本地git仓库,这个时候项目里会多出一个.git目录

6、将本地仓库和线上仓库建立关联

git remote add origin [线上仓库的SSH地址]
如果在执行这句话的时候报错:fatal: remote origin already exists.
那么就先执行 git remote rm origin
再重新执行 git remote add origin [线上仓库的SSH地址]

7、将代码添加到暂存区

添加所有文件:git add .
也可以 git add [文件名] 来单独添加某一个文件

8、代码提交到本地仓库

git commit -m ”说明本次提交所作的操作,越详细越好“

9、代码推送到远程

git push origin master


六、Git版本控制

1、把已经放在暂存区的内容在拉回到工作区

# 拉回暂存区的 index.txt 文件
git reset HEAD -- index.txt

# 拉回暂存区的 ceshi 文件夹
git reset HEAD -- ceshi/

# 拉回暂存区的 所有文件
git reset HEAD -- .

2、历史版本回退

# 查看历史版本
git log

git版本信息

这里commit后面的字符串即为版本号,我们可以使用 git reset --hard 版本编号 进行历史回退

# 回退到第一次提交的版本
git reset --hard ce0c17f7a703c6847552c7aaab6becea6f0197f2

# 回退到第二次提交的版本
git reset --hard abb2c4f12566440e04bc166c3285f855a37a3bb2

七、Git分支管理

1、Git分支介绍

git分支,就是我们自己把我们的整个文件夹分成一个一个独立的区域,比如我在开发 登录 功能的时候,可以放在 login 分支下进行开发;开发 列表 功能的时候,可以放在 list 分支下进行开发,大家互不干扰,每一个功能都是一个独立的功能分支,这样开发就会好很多。
git在初始化的时候,会自动生成一个分支,叫做 master,是表示主要分支的意思,我们就可以自己基于master开辟出很多独立分支

2、创建新分支

开辟一个分支使用 git branch 分支名称 指令

# 开辟一个 login 分支
$ git branch login

查看一下当前分支情况

# 查看当前分支情况
$ git branch

查看分支情况

已经可以看到,当前有两个分支了,一个是 master,一个是 login。前面有个 * 号,并且有高亮显示的,表示你当前所处的分支。

3、切换分支

我们对 登录 功能的开发要移动到 login 分支去完成,此时可以切换到其他分支,使用 git checkout 分支名称

# 切换到 login 分支
$ git checkout login

4、合并分支

开发完毕以后,我们就在当前分支上进行提交,提交以后我们再把分支切换回master发现 master 上面还是最初始的状态,而 login 分支上有我们新写的 登录 功能的代码。我们按照分支把所有功能都开发完毕了以后,需要把所有代码都合并到 master 主分支上。

git 的合并分支,只能是把别的分支的内容合并到自己的分支上

使用:git merge

# 切换到 master 分支
$ git checkout master

# 把 login 的内容合并到自己的分支
$ git merge login

5、删除分支

,我们刚才在 login 上开发的东西就都来到了 master 主分支上,如果是有多个分支的话,那么所有的最后都合并到 master 分支上的时候,我们的主分支上就有完整网站的所有页面,各个分支上都是单独的页面和功能。这个时候我们开辟的分支就没有什么用了,就可以删除分支了

先切换到别的分支

使用指令 git branch -d 分支名称 来删除

# 先切换到别的分支
$ git checkout master

# 删除 login 分支
$ git branch -d login

八、Git常用的分支名

1、master 分支:

主分支,永远只存储一个可以稳定运行的版本,不能在这个分支上直接开发

2、develop(dev)分支:

主要开发分支,主要用于所用功能开发的代码合并,记录一个个的完整版本
包含测试版本和稳定版本
不要在这个分支上进行开发

3、feature-xxx(fea-xxx)功能开发分支:

dev创建的分支主要用作某一个功能的开发,以自己功能来命名就行,例如 feat-login / feat-list,开发完毕后合并到 dev 分支上

4、feat-xxx-fix

某一分支出现bug以后,在当前分支下开启一个fix分支,比如登录功能有bug,可以基于feat-login开辟一个新的分支feat-login-fix,解决完 bug 以后,合并到当前功能分支上,如果是功能分支已经合并之后发现 bug 可以直接在 develop 上开启分支,修复完成之后合并到 dev 分支上

5、hotfix-xxx

用于紧急bug修复,直接在 master 分支上开启,修复完成之后合并回 master


九、Git冲突解决

it冲突是指在我们的上传过程中,本地的版本和远程的版本不一致导致的,这个时候只要先使用 git pull 拉取回来,让本地和远程保持一致,然后再从新上传就好了,但是 git pull 相对不安全,因为会自动和本地内容合并,我们也可以选择使用 git fetch

$ git merge tmp# 使用 fetch 获取远程最新信息并开辟一个临时分支
$ git fetch origin master:tmp

# 将当前分支和临时分支的内容进行对比
$ git diff tmp

# 再选择合并分支内容
$ git merge tmp

十、Git 常见命令

git init 初始化仓库
git config 配置用户信息
git remote add origin [线上仓库地址] 新增远程仓库的关联
git remote rm origin 删除远程仓库的关联
git add 添加到暂存区
git commit -m '[本次提交的备注信息]' 代码提交(每一次commit都会有一个新的版本号)
git push origin [分支名] 推送到远程仓库
git status 查看当前仓库的状态
git log 查看日志(每一个commit在这里都能查看到,而且commit后面的随机字符串就是版本号),按字母q 退出log
git reset --hard [要回退的版本号] 回退到之前的某一个版本
git clone [线上仓库地址] 把线上仓库代码克隆到本地
git pull origin [分支名] 在已有的仓库基础上拉取某分支最新的线上代码,拉取之后直接合并
git fetch origin [分支名] 在已有的仓库基础上拉取某分支最新的线上代码,拉取之后由用户决定是否合并
git branch 查看分支
git branch newBranch 基于当前分支创建newBranch分支
git branch -d myBranch 删除myBranch分支
git diff tmp 查看当前分支和tmp分支的区别
git merge tmptmp分支合并到当前分支


十一、使用 Git 时候的一些注意事项

1、一个本地仓库对应一个远程仓库

2、远程代码和本地代码要保持统一

3、.git 文件不能嵌套(仓库不能嵌套)

4、提交大文件报错

使用git提交比较大的文件的时候可能会出现这个错误

error: RPC failed; result=22, HTTP code = 411
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date

这样的话首先改一下git的传输字节限制

git config http.postBuffer  524288000

十二、使用 Git 提交时的备注信息

用于说明 commit 的类别,只允许使用下面7个标识

  1. feat:新功能(feature)
  2. fix:修补bug
  3. docs:文档(documentation)
  4. style: 格式(不影响代码运行的变动)
  5. refactor:重构(即不是新增功能,也不是修改bug的代码变动)
  6. test:增加测试
  7. chore:构建过程或辅助工具的变动

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 848130454@qq.com

文章标题:Git—使用说明书

文章字数:3k

本文作者:Spicy boy

发布时间:2021-01-26, 16:52:30

最后更新:2021-03-31, 10:32:26

原始链接:http://www.spicyboy.cn/2021/01/26/Git%E2%80%94%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E%E4%B9%A6/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏