Git工作流程图

git命令
命令如下:
1.clone(克隆):从远程仓库中克隆代码到本地仓库
2.checkout(检出):从本地仓库中检出一个仓库分支然后进行修订
3.add(添加):在提交前先将代码提交到暂存区
4.commit(提交):提交到本地仓库。本地仓库中保存修改的各个历史版本
5.fetch(抓取): 从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少。
6.pull (拉取): 从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于fetch+merge
7.push(推送):修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库
配置git用户名,邮箱
设置git用户基本信息
git config --global user.name "www"
git config --global user.email "zzz"
查看git用户基本信息git config --global user.name
git config --global user.email
初始化git仓库
git init
提交暂存
git add . (也可以是单个文件名)
查看文件状态
git status
提交文件到本地仓库
git commit -m "注释"
查看git日志,查看提交情况
git log
查看提交日志参数(log)
作用:查看提交记录
命令形式: git log【option】
options
--all 显示所有分支
--pretty=oneline 将提交信息显示为一行
--abbrev-commit 使得输出的commitid更简短
--graph 以图的形式显示
版本回退
作用版本切换
1.回退本地版本
//方法一
git reset --hard commitID 回退到当前版本
//方法二git revert commitID 撤销当前提交的改变 只是提交历史不删除,反而新增一个反向提交
2.将远程版本索引更改指向回退版本
Wzx@LAPTOP-CRKUJBEA MINGW64 /d/GoLang/GoProgram/Test (master)
$ git remote -v
go-basic https://gitee.com/wei-zheng-xiang/go-basic.git (push)
Wzx@LAPTOP-CRKUJBEA MINGW64 /d/GoLang/GoProgram/Test (master)
$ git branch --show-current
master
Wzx@LAPTOP-CRKUJBEA MINGW64 /d/GoLang/GoProgram/Test (master)
$ git branch
* master
Wzx@LAPTOP-CRKUJBEA MINGW64 /d/GoLang/GoProgram/Test (master)
$ git push -f go-basic master
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Powered by GITEE.COM [1.1.23]
remote: Set trace flag 774a108e
To https://gitee.com/wei-zheng-xiang/go-basic.git
- 27d2843...da545a5 master -> master (forced update)
注意事项
- 备份确认 :执行强制推送前,务必确认本地已经通过
git reset --hard commitID回退到了目标版本,避免推错;- 风险提示 :
git push -f会覆盖远程go-basic仓库master分支的提交记录,如果这个仓库有其他人协作,一定要提前沟通,防止他人代码丢失;- 替代方案 :如果只是想撤销某个提交而非彻底回退,优先用
git revert commitID+git push go-basic master(无需-f,更安全)。
查看已经删除的记录
这个指令可以看到已经删除的提交记录
git reflog
git添加分支
git branch 分支名
查看文件提交情况
git status

切换分支
git checkout dev01(分支名)
创建并切换到当前分支上来
git checkout -b dev02
合并分支
合并到主分支上
git merge dev01
删除分支
git branch -d b1 //删除分支时,需要做各种检查
git branch -D b1 //不做任何检查,强制删除
开发中分支使用原则与流程
master (生产) 分支
线上分支,主分支,中小规模项目作为线上运行的应用对应的分支
develop (开发)分支
是从master创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线要求,都可以在此版本进行开发,阶段开发完成后,需要是合并到master分支,准备上线。
feature/xxx 分支
从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完成后合并到develop分支。
hotifx/xxx分支
从master派生的分支,一般作为线上bug修复使用,修复完成后需要合并到master、test、develop分支。
