Git工作流文档
前言
就目前当下的情况来说,只是一种规范,做与不做全都随你。其目的有: 一、master主分支代码稳定(核心) 二、版本快速回退
运行流程
(假装这里有一张Mermaid图表....)
指令
一、配置信息指令
// 常用
git config user.name // 查看用户名
git config user.email // 查看邮箱
git config --global user.name "guangtouwuke" // 切换用户
git config --global user.email "guangtouwuke@qq.com" // 切换邮箱
二、操作指令
1、git init
新项目初始化,并进行第一次提交至远程仓库
git init
git add .
git commit -m "guangtouwuke..."
git remote add origin https://gitlab/guangtouwuke.git
git push origin master
2、git clone
对github、gitlab远程仓库,克隆已有项目
git clone https://github.com/guangtouwuke.git
3、git pull、git fetch
(1)git pull 会将远程master分支上(或其他)的代码拉取下来,并执行合并至本地
git pull origin
git pull https://github.com/guangtouwuke.git
(2)git fetch 会将远程master分支上(或其他)的代码拉取下来,但不执行合并至本地
git fetch --all
git fetch --tags
(3)git pull 和git fetch区别 远端跟踪分支不同 git fetch能够直接更改远端跟踪分支 git pull无法直接对远程跟踪分支操作,我们必须先切回本地分支然后创建一个新的commit提交 拉取不同
git pull是从远程获取最新版本并merge到本地,会自动合并或修改当前的工作。 git fetch会将数据拉取到本地仓库,它并不会自动合并或修改当前的工作。
4、git add
(1)添加指定目录到暂存区,包括子目录
git add [dir]
git add README hello.js // 例如:添加2个文件到暂存区
(2)添加当前目录下的所有文件到暂存区
git add .
5、git commit
将暂存区内容添加到本地仓库中
git commit -m "这是一次提交..."
6、版本回撤/退
(1)回滚代码,撤销某一次commit,并强推到远程仓库
如果需要删除的 commit 是最新的,那么可以通过 git reset
命令将代码回滚到之前某次提交的状态,但一定要将现有的代码做好备份,否则回滚之后这些变动都会消失
git log // 查询要回滚的 commit_id
git reset --hard commit_id // HEAD 就会指向此次的提交记录
git push origin HEAD --force // 强制推送到远端
(2)回退到上一个版本
git reset HEAD^ // 所有内容回退到上一个版本
git reset HEAD^ evil.js // 将单个文件evil.js回退到上一个版本
(3)回退到指定版本
git log // 查看日志(其实查看tag也可以),拿到commit_id
git reset -- hard commit_id
(4)回退到上上上上一个版本....【情景】:由于提错了分支分支原因,一不小心将代码提交到本地仓库,但是还未推送至远端,就可以考虑:
git reset --soft HEAD~4
/*
HEAD说明:
HEAD 或者 HEAD~0 表示当前版本
HEAD^ 或者 HEAD~1 表示上一个版本
HEAD^^ 或者 HEAD~2 表示上上一个版本..(以此类推)
*/
(5)误删回退 场景:回滚代码之后发现复制错了 commit_id,或者误删了某次 commit 记录,最好是没有上传至远程仓库的情况,如果已经上传至远程了,重新覆盖一遍也许是个好办法
git relog // 复制要恢复操作的前面的 hash 值
git reset --hard hash // 将 hash 换成要恢复的历史记录的 hash 值
7、分支(重头)
(1)简单的几句话
git branch 分支名 // 创建分支 —— 增
git branch master // 切入主分支,删除分支前,需要切换到其他分支
git branch -d 分支名称 // 删除分支 —— 删
git push origin --delete 远程分支名称 // 删除远端分支
git branch // 查看所有分支 —— 查
git branch -r // 查看远端分支
git checkout [guangtouwuke...] // 切换至guangtouwuke分支上
(2)git merge 合并分支 场景讲解:如果test分支已经达到了上线的标准了,test分支的代码就要合并到master分支上,指令如下:
git checkout master // 切换到master主分支上
git merge test // test分支合入master
git push origin master // 推送到远程的master分支上
(3)创建推送
git checkout dev // 切换到dev分支
git push origin dev // 将dev分支推送到远程
8、标签(Tag)
到了一个时间节点或者版本节点,希望可以将这个节点记住,作为日后稳定版本回退的依据。这个时候tag就起作用了
git tag // 查看本地标签
git tag -a 916v2.0 -m "guangtouwuke push a tag"
git push origin 916v2.0 // 将本地标签推送到远程
git ls-remote --tags origin // 查看远程tag
git tag -d 916v2.0 // 删除本地标签
git push origin :refs/tags/916v2.0 // 删除远程标签
转载自:https://juejin.cn/post/7144899487650021389