查阅了一些资料,站在前人的肩膀上,看世界会很美好的。
基础篇:Git和Gitee零基础入门(小白必备!)
一、Git分区
距离上一篇Git文章,已经过去了很长时间了,今天再写一篇,整理最近遇到的一些问题及自己的解决方案。
首先是git分区图:
二、Git协作开发
版本管理系统可以实现自动记录每次文件的改动,大家可以写作编辑,各自编辑的数据清晰可见。
首先master主分支应该是非常稳定的,也就是用来发布新版本,一般情况下不允许在上面干活,干活一般情况下在新建的dev分支上干活,干完后,比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。
参考:5分钟入门git模式开发 - 云+社区 - 腾讯云 (tencent.com)
Git是常用的分布式版本管理系统,在企业中常见的开发流程如下:
- 项目开始阶段,管理员初始化项目(init),把代码放到暂存区,提交暂存区的代码到本地仓库,将本地仓库的代码推送到远端库,管理员创建对应的远程分支后,开发人员就可以clone下来进行开发操作了;
- 基于dev分支创建dev-xxx分支,开始进行普通的常规需求开发,开发完成后,Commit提交代码到本地仓库,如果这个新项目或者功能比较大有多人协同开发,怕会相互影响对方的代码,现从dev-xxx分支创建新分支dev-xxx-user进行开发,前提是dev-xxx分支需要push到线上;
- 开发完成后将dev-xxx分支合并到dev分支,然后部署dev到测试环境进行测试,测试过程中有bug的话修复完后同样合并到dev分支。如果是在多人协同开发的情况下先将dev-xxx-user分支合并到dev-xxx,再将dev-xxx合并到dev分支;
- 测试完成后,将dev分支合并到master分支,然后进行正式发布。发布完成后删除dev-xxx和dev-xxx-user分支; 如果担心在最后一步合并代码到master时有问题,也可以在测试的时候随时更新到本地master(先checkout master分支到本地),但不要push到线上,本地master 如果一定push到线上的话,这就要保证你的需求未测试发布前,别人不会发master与你相关的文件~
另外,如果是外网BUG或者日常,就可以在master上直接创建分支,修复完成后发布,定时同步dev分支,这样可以提高效率 ~
当然,需要了解更为详细的Git协作开发模式,参考:GitHub Flow & Git Flow 基于Git 的两种协作开发模式 - sloong - 博客园 (cnblogs.com)。
三、Git指令与使用场景
事实证明,只要你舍得时间研究,基本学这个很快的,只要在git环境下分别输入命令–help。如:
$ git config --help
$ git branch --help
... ...
git终端支持Linux指令 如:ls,pwd,touch,vi,rm,rm -rf ,等.
1.config
$ git config --global user.name "你的用户名"
$ git config --global user.email "你的邮箱"
$ git config user.name
$ git config user.email
$ git config --list
2.克隆和更新
$ git clone http://xxx/xxx.git
$ git pull origin master
3.分支
$ git branch
$ git branch -a
$ git branch dev
$ git checkout dev
$ git checkout -b dev
$ git branch -d test
$ git checkout README.md
$ git checkout .
$ git merge branchName
3.主分支提交
$ git add filename
$ git commit -m "提交描述"
$ git push origin master
4.dev分支提交代码到master(下面有文字解释!)
$ git add filename
$ git commit -m "提交描述"
$ git push origin dev
$ git merge dev
$ git add filename
$ git commit -m "合并dev代码"
$ git push origin master
$ git log --graph
dev分支提交代码到master 很多初学者会弄混,我说一说特别注意的点:
- 保证此时分支要合并的代码块,是唯一与远程仓库中master不同地方。满足以上要求,就要保证本地master分支与远程master一致。
- master合并的时候,会执行merge指令,merge指令是去到远程分支仓库获取分支代码,所以要合并的话,就要把分支代码提交到对应的远程分支仓库。
- 有冲突的话解决冲突!
5.日志
$ git log
$ git log --oneline
$ git reflog
6.Git合并多个commit
想深入理解merge和rebase的区别:带你理解 Git 中的 Merge 和 Rebase - 云+社区 - 腾讯云 (tencent.com)
$ git log --oneline
$ git rebase -i HEAD~3
git rebase -i [commitid]
-i --interactive
commitid 提交的版本号,本身不参与合并
7.版本回退
需要回退commit或了解学习更多细节,请参看:
- 指令语法:https://blog.csdn.net/jike11231/article/details/106664046
- 指令用法:https://www.cnblogs.com/MisterZZL/p/9758026.html
$ git reset --hard HEAD^
$ git log --oneline
$ git reset --hard da23
参考:https://www.cnblogs.com/smuxiaolei/p/7484678.html
|