GIT
git是什么?
- 分布式
- 版本控制
- 软件
为什么用git?
版本上线有问题,不需要将已修改的代码删除,直接回滚即可。也可以后再返回到该版本。
个人信息配置(第一次使用)
提示:please tell me who you are
git config --global user.email "you@example.com"
git config --global user.name "your name"
基本操纵
先进入要管理的文件夹
git init
之后产生.git文件夹
git status
查看文件管理状态
- 红色:新增的文件/修改了文件
- 绿色:已经add过的文件
git add 文件名
添加文件到暂存区
git add .
添加所有文件到暂存区
git commit -m "版本描述信息"
提交到版本库
git log
查看提交日志
git log --graph
图形显示日志
git log --graph --pretty=format:"%h %s"
回滚(版本回退)
git reset --hard commit_id
当回滚到之前版本x,该版本x之后的所有提交记录通过git log
也无法查看,只能通过git reflog
查看。
分支
git branch
查看目前所在的分支
git branch 分支名
创建分支
git checkout 分支名
切换到某分支
git branch -d 分支名
删除分支
业务场景(bug修复)
背景:当前Master版本v1即线上版本。现在dev分支上正在进行项目开发,此时发现bug要进行紧急修复。操作步骤如下:
git checkout master
从开发分支dev上切换回master主分支。git branch bug
创建新分支用于bug修复。- 进行bug修复。
git checkout master
切换回master主分支git merge bug
master主分支合并bug分支,可能需要手动解决冲突。git add .
git commit -m "bug修复完毕"
git branch -d "bug"
删除bug分支git checkout dev
切换到dev分支继续开发
Github(公共仓库)/Gitlab(自建仓库)
作用:为了方便随时随地在不同机器上进行开发,将代码推送到云端。
- 注册账号
- 创建仓库



- 将本地代码推送到远程仓库(远程仓库会存储本地现有的所有版本和分支)
- 假如本地没有仓库
echo "xxx " >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/xxx/xxx.git
git push -u origin master
- 假如本地已存在仓库
git remote add origin https://github.com/xxx/xxx.git
给远程仓库起别名叫“origin”git push -u origin master
将本地代码推送至远程仓库
-
从远程仓库将代码拉到本地
git clone https://github.com/xxx/xxx.git
场景(忘记推送代码)
- 白天在公司开发,下班前add/commit生成本地版本,但是忘记推送到远程仓库。
- 晚上回到家中想要继续开发,但是此时从远程仓库拉下来的代码是没有今天在公司开发的那一部分,但仍然可以向后进行其他功能开发。完成之后将代码推送到远程仓库。
- 第二天回到公司,拉下最新代码,此时可能会产生冲突(昨天晚上在家开发部分和昨天白天在公司开发部分),解决冲突以后便可以正常开发推送。
rebase
作用:将多个提交记录整合成一个提交记录,使得提交日志更加简洁。
git log
查看提交日志

-
git rebase -i 目标版本号
当前版本到目标版本进行提交记录合并,版本号通过git log
查看git rebase -i HEAD~3
将最新的3条提交记录合并
-
合并后会提示“如何合并”


- 修改提交信息


- 重新查看提交日志

rebase还有其他功能这里不过多介绍
注意:尽量不要rebase已经push过的版本。