返回顶部

git实战

一. 简介

介绍:git是个软件,用来管理我们每个版本的代码(文件)的内容的。

git安装:下载地址: https://git-scm.com/downloads 每个系统的都有(linux、mac、windows等),看官网的安装教程,很详细,此处我以windows来练习

1.1 基本用法

  管理起来之后,我们要生成我们的第一个版本了,但是生成第一个版本之前,必须要做一个配置,什么配置呢,就是要告诉git,你是谁,让git明白,到底是谁来生成版本了,所以要先执行下面的指令

  个人信息配置:用户名,邮箱

$ git config --global user.name <用户名>
$ git config --global user.email <邮箱地址>

例如:
$ git config --global user.name "maomao"
$ git config --global user.email "871347265@qq.com"

如果没有做个人信息配置,会报错,看图

1 进入要管理的目录
2 git init初始化  即:让git管理我们当前的文件夹
3 git status 检测当前文件夹中的文件状态
4 三种颜色的变化
    a 红色:新增文件或者修改的老文件 --> 执行git add .(或者单个文件或文件夹的名称)  
    b 绿色:git已经管理起来了 --> 执行git commit -m '描述信息'
    c 白色:生成版本了

好,之后我们会细说这几个颜色到底还有什么意义
5 git log 查看版本记录

 

1.2 git进阶

git的三大区域 :工作区(写代码的地方)—git add暂存区(临时存储)—git commit本地库(历史版本)

 

 

 

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

文件往Git版本库里添加的时候,是分两步执行的:

第一步用git add把文件添加进去,实际上就是把文件修改添加到暂存区。
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
创建Git版本库时,Git自动为我们创建了唯一一个master分支,git commit就是往master分支上提交更改。add需要提交的文件修改通通放到暂存区,然后commit可一次性提交暂存区的所有修改

三大区简单介绍

 

1.2.1 回滚


git log  # 查看提交记录
git reflog # 查看所有提交记录,包含回滚的记录
git reset --hard 版本号  # 跟上版本号,就可以往前滚或者完后滚了。。

git log:

git reset --hard 版本号来回滚

 

 

 

1.2.2 分支

 

 基本指令:

git branch    查看当前分支

git branch dev  创建一个名为dev的分支

git checkout dev  将工作切换到dev分支上

git branch master
git merge bug    #分支合并---首先切换到master分支,然后在master分支上执行merge指令来合并bug分支的代码

git branch -d bug  删除bug分支

 

1.2.3 紧急处理bug

1. 需要切换回master分支,在master分支上再创建一个bug分支:

2. 在bug分支上解决bug,解决完BUG后, 在bug分支上创建一个版本:

3.然后切换到master分支上,去合并bug分支上的代码

4. 然后master分支上的bug就修复了,我们可以继续去开发dev分支上的新功能了,切换到dev分支,继续开发

5. dev分支开发完毕后,切换到master分支准备merge的时候,可能会有冲突,手动解决冲突后,再merge. 注意:MERGING已经消失了。

 

 

 

1.2.4 github

 

  创建好之后我们会看到下面这个页面,其实在GitHub这个托管站上,就相当于我们创建了一个叫做dbhot(就上面我起的那个仓库名称)的文件夹,用来管理我们的项目。

 

 

  然后看一下推送代码的指令:

 

 

上传代码
1. 给远程仓库起名
    git remote add origin 远程仓库地址
2. 向远程推送代码
    git push -u origin 分支

在新电脑上第一次获取代码
1. 克隆远程仓库代码
    git clone 远程仓库地址(内部已实现git remote add origin 远程仓库地址)
2. 切换分支
    git checkout 分支

在新电脑上进行开发
1. 切换到dev分支进行开发
    git checkout dev
2. 把master分支合并到dev(仅一次)
    git merge master
3. 修改代码
4. 提交代码
    git add .
    git commit -m 'xx'
    git push origin dev

回老电脑上继续写代码
1. 切换到dev分支进行开发
    git checkout dev
2. 拉代码
    git pull origin dev
3. 继续开发
4. 提交代码
    git add .
    git commit -m 'xx'
    git push origin dev

如果在公司忘记提交代码,怎么办?

在公司开发的时候
1. 拉代码
    git pull origin dev
2. 继续开发

3. 提交代码
    git add .
    git commit -m 'xx'
注:忘记push了,没有推给GitHub

回到家继续开发
1. 拉代码,发现在公司写的代码忘记提交到GitHub上了
    git pull origin dev
2. 继续开发其他功能
    但是在家里写的功能有可能和你在公司开发的代码有些冲突(在同一行)
3. 把dev分支也推送到了远程
    git add .
    git commit -m 'xxx'
    git push origin dev

第二天到了公司继续写代码
1. 拉代码,把昨天晚上在家里写的其他功能的代码拉到本地(有合并、可能产生冲突)
    git pull origin dev
2. 如果有冲突,手动解决冲突(公司电脑上昨天忘记push的代码和昨日回到家后写的代码可能有些冲突)
3. 继续开发其他功能
4. 把dev分支也推送到远程
    git add .
    git commit -m 'xxxx'
    git push origin dev

 

 

1.2.5 变基rebase

这是一个独立的概念,这个rebase能够让我们的git提交记录变得非常简洁。

 

 

方式1:
    git rebase -i 版本号
    例如:git rebase -i 281f2525fb3600b663a6554ed9e301781239bd69  #这个是v2版本的版本号,那么执行这个指令的意思就是将v2版本一直到目前最新版本v4,全部合并到一起

方式2:常用
    git rebase -i HEAD~3  #3表示合并3个版本,而HEAD~3的意思是以当前最新的版本开始,合并最近的三个版本,也就是v4、v3、v2将合并到一起

 

 

1.2.6 多人协同

 

 

git clone https://github.com/oldboy-org/dbhot.git
cd dbhot
git checkout dev
git checkout -b dzz  # 在自己的分支上开发,不要直接再dev上开发,一般是你的分支开发完毕后,提交到PR,进行code review后,再并入到dev分支

#写代码
git add .
git commit -m 'dzz开发完毕'
git push origin ddz
#

 

posted @ 2020-10-23 22:07  muguangrui  阅读(69)  评论(0编辑  收藏  举报