Git
1.Git初步认识
1.1Git操作
1.1.1基础操作
- git init (初始化仓库)
- git status (检查文件,仓库状态)
- git add 文件名.文件后缀(添加文件至暂存区)
- git commit -m “更新记录” (提交)
- git log (查看日志)
- gitk (图形界面)-patch(差异)
1.1.2远程仓库操作
- git config –global user.name “账户名” (绑定账户)
- git config –global user.email “绑定邮箱” (绑定账户)
- git clone GitHub仓库地址 (加载到本地仓库)
- git remote add 自定义仓库标识名 仓库地址 (连接GitHub仓库)
- git remote show (显示连接的仓库)
- git remote show 仓库标识名 (显示仓库信息)
- git push 仓库标识名 main(推送到远程仓库)
- git push –set -unstream 仓库名 main(设置默认push仓库名)
- git remote remove 仓库标识名 (移除仓库)
- git pull 仓库标识名 分支名 (从远程仓库获取代码并合并版本)
- git push -f (强制上传)
1.1.3 文件编辑操作
- vi 文件名 (用vi文本编辑器打开当前文件)
- :q(退出该编辑器)
- :光标+i(在光标处开启编辑)
- ESC (退出编辑)
- :w (保存)
- :wq(保存并退出)
编辑具体使用
- git commit –amend(修改最近一次历史版本提交日志)
- git add 文件夹名/ (将该文件夹所有文件放入暂存区)
- git add –all (将当前目录下所有文件放入暂存区)
- git rm 文件名 (从本地仓库移除文件)
- git mv 原文件名 新文件名 (修改文件名)
- git rm –cashed 文件名
- git commit -a (越过暂存区直接到仓库)
- git checkout – 文件 (恢复并覆盖最近一次暂存区的文件到工作区)
- git reset –hard 版本id号(回退版本)
1.1.4 分支管理
- git branch (查看分支)
- git branch 分支名 (新建分支)
- git ·checkout -b 分支名 (新建并切换到该分支)
- git checkout 分支名 (切换分支)
- git checkout - (切换到上个分支)
- git merge 分支名 (合并指定分支到当前分支)
- git branch -d 分支名 (删除分支)
- git branch 新分支 已存在分支 (基于分支创建新分支)
2.git(本地)推送远程仓库流程
1.首先,绑定github(gitee)账户
1 | 1.首先,绑定github(gitee)账户 |
2.初始化要push的文件夹
1 | git init (初始化仓库) |
3.添加文件至暂存区并提交,注意这里还是在本地进行
1 |
|
1 |
|
4.更改分支名为main
1 |
|
5.连接github仓库
1 |
|
6.推送(必须在有网的前提下)
1 |
|
3.git分支管理策略
一般大型项目的维护、开发以及发布过程会遵循以下的策略(结合图来理解)
粉色模块Master是项目用来发布重大版本的分支,它是一个项目的主分支,日常开发所进行的分支则应在develop上进行,相应的功能模块会在基于develop分支上进行创建,功能模块实现并完成了它的任务(功能)并和develop分支合并(merge)后,则可清除该分支(红色曲线)。
在develop开发到一定程度决定发布后,则可以通过release-(橙色,\代表版本号)分支进行测试,release分支进行项目的运行测试并修改相应bug并确认无误后则可在Master主分支上对release进行合并(merge),同时将无bug版本在develop上也进行合并(merge),之后它便可以光荣退休(红线)了,等待下一个重大的日常版本来再出现。
Maste主分支在对外发布并运行的过程多多少少(当然能尽量避免就尽量避免)可能会出现一些测试未发现的bug,这时,则可以在它上面新建分支,用来解决对应bug,名称为fixbug-bug名,在对bug进行解决后则可继续合并到主分支,同时合并到develop上去,这时的fixbug也可以退休(红线)啦。
可以同时参考这篇博客http://www.ruanyifeng.com/blog/2012/07/git.html
下图是另外一种结构图(图源网络)
总结:如果要清晰完整的开发好一个大型多人合作的项目,做好以下几点
*列好分支清单,统一好分支的命名,不要使分支混乱
*定时合并和清理分支,保证分支的简洁度和项目功能的完整度
*在一个大版本即将发布之时,检查好该版本的功能完整性以及测试是否可以正常运行,尽量少做在发布之时修改bug。
*提交每个版本时要做好清晰的备注
4.git工作流程
参考博客:http://www.ruanyifeng.com/blog/2015/12/git-workflow.html